from pydantic import BaseModel, Field
from typing import List, Optional


class ReminderSchema(BaseModel):
    id: Optional[str] = None
    amount: int
    unit: str
    channels: List[str]


class RecurringSchema(BaseModel):
    enabled: bool
    type: str
    interval: Optional[int] = None
    days: List[str] = Field(default_factory=list)
    time: Optional[str] = None
    times: List[str] = Field(default_factory=list)
    endDate: Optional[str] = None


class TaskCreate(BaseModel):
    created_by: str
    title: str
    description: Optional[str] = None

    department: Optional[str] = None
    designation: Optional[str] = None

    startTime: Optional[str] = None
    endDate: str
    endTime: Optional[str] = None
    endDateTime: Optional[str] = None

    priority: str = "Medium"
    status: str = "Pending"

    # IMPORTANT: employee IDs are strings like KC4508
    assignees: List[str] = Field(default_factory=list)

    reminder: Optional[dict] = None
    recurring: Optional[dict] = None
