import uuid from datetime import datetime from pydantic import BaseModel, Field class CreatePdfTemplateRequest(BaseModel): name: str = Field(min_length=1, max_length=100) locale: str = Field(default="en", min_length=2, max_length=10) description: str | None = None html_content: str = Field(min_length=1) class UpdatePdfTemplateRequest(BaseModel): name: str | None = Field(default=None, min_length=1, max_length=100) locale: str | None = Field(default=None, min_length=2, max_length=10) description: str | None = None html_content: str | None = Field(default=None, min_length=1) is_active: bool | None = None class PdfTemplateResponse(BaseModel): id: uuid.UUID name: str locale: str description: str | None html_content: str is_default: bool is_active: bool created_at: datetime model_config = {"from_attributes": True} class PdfTemplateListResponse(BaseModel): templates: list[PdfTemplateResponse] class PdfTemplateSummaryResponse(BaseModel): """Lightweight response for user-facing template list (no html_content).""" id: uuid.UUID name: str locale: str description: str | None is_default: bool model_config = {"from_attributes": True} class PdfTemplateSummaryListResponse(BaseModel): templates: list[PdfTemplateSummaryResponse] class PreviewRequest(BaseModel): html_content: str = Field(min_length=1) class PreviewResponse(BaseModel): html: str