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


class DisplayBoardCreate(CustomModel):

    type : str
    size : int
    cost_per_unit : int
    units : int
    remark : str
    store_formate_type : Literal["Store Formate A", "Store Formate B"]= Field(default="Store Formate A")
    group_id : int
    
    
class DisplayBoardResopnse(CustomModel):
    display_board_id : int
    type : str
    size : int
    cost_per_unit : int
    units : int
    total : int
    remark : str
    store_formate_type : Literal["Store Formate A", "Store Formate B"]="Store Formate A"
    group_id : int 
    
class DisplayBoardUpdate(CustomModel):
    
    # display_board_id : Optional[int] = None
    type : Optional[str] = None
    size : Optional[int] = None
    cost_per_unit : Optional[int] = None
    units : Optional[int] = None
    remark : Optional[str] = None
    store_formate_type : Optional[Literal["Store Formate A", "Store Formate B"]]="Store Formate A"
    group_id : Optional[int]  = None
    
class DisplayBoardSum(CustomModel):
    group_id: int
    store_formate_type: str
    total_sum: Optional[int] = None