"""Contact folder schemas — CRUD for hierarchical contact folders."""

from __future__ import annotations

from pydantic import BaseModel, Field


class ContactFolderCreate(BaseModel):
    name: str = Field(..., min_length=1, max_length=255)
    parent_id: str | None = None


class ContactFolderUpdate(BaseModel):
    name: str | None = Field(None, min_length=1, max_length=255)
    parent_id: str | None = None
    sort_order: int | None = None


class ContactFolderResponse(BaseModel):
    id: str
    name: str
    parent_id: str | None = None
    user_id: str
    sort_order: int = 0


class ContactFolderTreeResponse(ContactFolderResponse):
    children: list["ContactFolderTreeResponse"] = Field(default_factory=list)
    contact_count: int = 0


class MoveContactRequest(BaseModel):
    folder_id: str | None = None
