"""通用请求/响应模型。"""
from typing import Any

from pydantic import BaseModel, Field


class RenderRequest(BaseModel):
    template: str = Field(..., description="模板文件名（相对于模板目录），如 at/奥地利包装法授权-template.docx")
    enterprise_id: int | None = Field(default=None, description="企业信息 ID（读库 enterprise_info.id），可选")
    order_id: int | None = Field(default=None, description="订单 ID（读库 order_info.id），可选")
    values: dict[str, Any] = Field(default_factory=dict, description="额外的占位符覆盖值")
    output_name: str | None = Field(default=None, description="输出文件名（不含路径）")
    to_pdf: bool = Field(default=True, description="生成后是否转换为 PDF（docx/xlsx 生效）")


class Pagination(BaseModel):
    page: int = Field(default=1, ge=1)
    size: int = Field(default=20, ge=1, le=100)


class PageResult(BaseModel):
    total: int
    page: int
    size: int
    items: list[Any]