from datetime import datetime

from pydantic import BaseModel

from app.schemas.goal import GoalOut
from app.schemas.reminder import ReminderOut
from app.schemas.task import TaskOut
from app.schemas.todo import TodoOut


class ScheduleCenterDaySummary(BaseModel):
    date: str
    todo_total: int
    todo_completed: int
    task_due_total: int
    high_priority_total: int
    reminder_total: int
    goal_total: int


class ScheduleCenterMonthOut(BaseModel):
    month: str
    days: list[ScheduleCenterDaySummary]


class ScheduleCenterDateOut(BaseModel):
    date: str
    todos: list[TodoOut]
    tasks: list[TaskOut]
    reminders: list[ReminderOut]
    goals: list[GoalOut]
    summary: ScheduleCenterDaySummary
    generated_at: datetime
