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


class UtilityCreate(CustomModel):
    
    # utility_id : int
    utility_name : str
    cost_per_month : float
    key_usage_parameters : str
    remark : str
    store_format_type : Literal["Store Formate A", "Store Formate B"]
    group_id : int
    
class UtilityResponse(UtilityCreate):
    
    utility_id : int
    
class UtilityUpdate(CustomModel):
    
    utility_id : Optional[int] = None
    utility_name : Optional[str] = None
    cost_per_month : Optional[float] = None
    key_usage_parameters : Optional[str] = None
    remark : Optional[str] = None
    store_format_type : Optional[Literal["Store Formate A", "Store Formate B"]]
    group_id : Optional[int] = None