from pydantic import BaseModel
from typing import Optional, List
from datetime import date

class AssignmentResponse(BaseModel):
    id: int
    position_number: str
    position_type_code: str
    position_type_label: Optional[str] = None
    position_type_color: Optional[str] = None
    position_type_requires_asim: bool = True
    asim_id: Optional[int] = None
    asim_name: Optional[str] = None
    asim_no: Optional[int] = None
    is_override: bool = False
    area_id: Optional[int] = None
    area_name: Optional[str] = None

    class Config:
        from_attributes = True

class MassScheduleResponse(BaseModel):
    id: int
    template_id: Optional[int] = None
    date: date
    notes: Optional[str] = None
    is_published: bool
    template_name: Optional[str] = None
    template_time: Optional[str] = None
    assignments: List[AssignmentResponse] = []

    class Config:
        from_attributes = True

class GenerateRequest(BaseModel):
    month: int
    year: int

class PublishRequest(BaseModel):
    schedule_ids: List[int]