from typing import Optional
from pydantic import Field
from app.utils.schemas_utils import CustomModel


class GrossMarginContributionCreate(CustomModel):
    category_name : str
    contribution_to_total_sales : float
    contribution_to_gross_margin : float
    rationale  : str
    group_id : int
    
class GrossMarginContributionResponse(GrossMarginContributionCreate):
    gross_id : int
    
class GrossMarginContributionUpdate(CustomModel):
    gross_id : Optional[int] = None
    contribution_to_total_sales : Optional[float] = None
    contribution_to_gross_margin : Optional[float] = None
    rationale  : Optional[str] = None
    group_id : Optional[int] = None
    
class GrossMarginContributionExcel(CustomModel):
    category_name : str | None = Field(default=None)