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

class UnavailabilityCreate(BaseModel):
    asim_id: int
    unavail_type: str
    day_of_week: Optional[int] = None
    mass_time: Optional[str] = None
    date_from: Optional[date] = None
    date_to: Optional[date] = None
    reason: Optional[str] = None
    status: Optional[str] = 'pending'

class UnavailabilityUpdate(BaseModel):
    status: str

class UnavailabilityResponse(BaseModel):
    id: int
    asim_id: int
    asim_name: Optional[str] = None
    asim_no: Optional[int] = None
    unavail_type: str
    day_of_week: Optional[int] = None
    mass_time: Optional[str] = None
    date_from: Optional[date] = None
    date_to: Optional[date] = None
    reason: Optional[str] = None
    status: str
    is_active: bool = True
    created_at: Optional[datetime] = None

    class Config:
        from_attributes = True