from typing import List
from pydantic import BaseModel, Field
from typing import Optional
from decimal import Decimal
from datetime import datetime
from src.apps.base.schemas.common import BaseSchema
from src.apps.base.schemas.country import CountryOutSchema
from src.apps.base.schemas.region import RegionOutSchema
from src.utils.constants import MAX_PER_PAGE,DEFAULT_PER_PAGE
# from src.apps.wine.wine.schemas.wine import WineOutputSchema

class AppellationSchema(BaseSchema):
    name: Optional[str] = Field(None, example="Bordeaux")

    country_id: Optional[int] = Field(None, example=1)
    region_id: Optional[int] = Field(None, example=1)
    sub_region_id: Optional[int] = Field(None, example=1)
    
class AppellationCreateSchema(AppellationSchema):
    pass
class AppellationUpdateSchema(AppellationSchema):
    pass
    
class AppellationOutputSchema(AppellationSchema):
    id: Optional[int] = None
    country: Optional[CountryOutSchema] = None 
    region: Optional[RegionOutSchema] = None  
    date_created: Optional[datetime] = None
    last_updated: Optional[datetime] = None