from pydantic import BaseModel
from typing import Optional
from datetime import datetime, date, time
from typing import List
from src.marketing.apps.Account.schema import ConnectedAccountOut
from src.marketing.apps.post.schema import CalendarPostOut, CalendarPostTypeOut

class CalendarBase(BaseModel):
    name: str
    icon: Optional[str] = None
    store_id: Optional[int] = None
    branch_id: Optional[int] = None
    user_id: Optional[int] = None
    timezone: Optional[str] = None

class CalendarCreate(CalendarBase):
    pass

class CalendarOut(CalendarBase):
    id: int
    slug: Optional[str] = None

    connected_accounts: Optional[List[ConnectedAccountOut]] = []
    posts: Optional[List[CalendarPostOut]] = []
    # post_types: Optional[List[CalendarPostTypeOut]] = []
    class Config:
        from_attributes = True

class CalendarUpdate(CalendarBase):
    name: Optional[str] = None
    icon: Optional[str] = None
    timezone: Optional[str] = None

    class Config:
        from_attributes = True
        # orm_mode = True
        
