from __future__ import annotations

from typing import Any

from pydantic import BaseModel, Field


class QuickAddNotePayload(BaseModel):
    title: str = Field(min_length=1, max_length=120)
    body: str = Field(min_length=1, max_length=1000)
    category: str = Field(default='note', min_length=1, max_length=40)
    source: str = Field(default='quick-add', min_length=1, max_length=40)
    pinned: bool = False


class DashboardSummary(BaseModel):
    profile: dict[str, Any]
    counts: dict[str, int]
    agenda: list[dict[str, Any]]
    reminders: list[dict[str, Any]]
    lists: list[dict[str, Any]]
    notes: list[dict[str, Any]]
    links: list[dict[str, Any]]
    meal_ideas: list[dict[str, Any]]
    shortcuts: list[dict[str, Any]]
    quick_actions: list[dict[str, Any]]
