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

class NetworkPlanningCreate(CustomModel):
    location: str
    state: str
    total_hh: int
    target_hh: int
    area: float
    format_a_y1: int
    format_a_y2: int
    format_a_y3: int
    format_a_y4: int
    format_a_y5: int
    format_b_y1: int
    format_b_y2: int
    format_b_y3: int
    format_b_y4: int
    format_b_y5: int
    group_id: int

class NetworkPlanningResponse(CustomModel):
    location: str
    state: str
    total_hh: int
    target_hh: int
    area: float
    format_a_y1: int
    format_a_y2: int
    format_a_y3: int
    format_a_y4: int
    format_a_y5: int
    format_b_y1: int
    format_b_y2: int
    format_b_y3: int
    format_b_y4: int
    format_b_y5: int
    total_store_count_y1: int
    total_store_count_y2: int
    total_store_count_y3: int
    total_store_count_y4: int
    total_store_count_y5: int

class NetworkPlanningUpdate(CustomModel):
    network_id : int 
    location: str | None = Field(default=None)
    state: str | None = Field(default=None)
    total_hh: int | None = Field(default=None)
    target_hh: int | None = Field(default=None)
    area: float | None = Field(default=None)
    format_a_y1: int | None = Field(default=None)
    format_a_y2: int | None = Field(default=None)
    format_a_y3: int | None = Field(default=None)
    format_a_y4: int | None = Field(default=None)
    format_a_y5: int | None = Field(default=None)
    format_b_y1: int | None = Field(default=None)
    format_b_y2: int | None = Field(default=None)
    format_b_y3: int | None = Field(default=None)
    format_b_y4: int | None = Field(default=None)
    format_b_y5: int | None = Field(default=None)


    # class GroupDataSchema(CustomModel):
    #     group_no: Optional[str]
    #     format_type: Optional[str]
    #     reference_retailer: Optional[str]
    #     no_of_stores: Optional[int]
    #     indicative_categories: Optional[str]
    #     no_of_sub_cats_l: Optional[int]
    #     no_of_sub_cats_m: Optional[int]
    #     no_of_sub_cats_h: Optional[int]
    #     indicative_size_sqft: Optional[float]
    #     indicative_capital_rs_cr: Optional[float]
    #     approx_investment_per_store_lakhs: Optional[float]
    #     competition_intensity_l: Optional[str]
    #     competition_intensity_m: Optional[str]
    #     competition_intensity_h: Optional[str]
    #     tech_investment_h_lakhs: Optional[float]
    #     tech_investment_m_lakhs: Optional[float]
    #     tech_investment_l_lakhs: Optional[float]
    #     spillage_factor_h: Optional[float]
    #     spillage_factor_l: Optional[float]

