"""Company schemas — create, update, read, list, pagination, search, filter.""" from __future__ import annotations from pydantic import BaseModel, Field class CompanyCreate(BaseModel): name: str = Field(..., min_length=1, max_length=100) account_number: str | None = Field(None, max_length=40) industry: str | None = Field(None, max_length=50) phone: str | None = Field(None, max_length=30) email: str | None = Field(None, max_length=255) website: str | None = Field(None, max_length=500) description: str | None = None class CompanyUpdate(BaseModel): name: str | None = Field(None, min_length=1, max_length=100) account_number: str | None = Field(None, max_length=40) industry: str | None = Field(None, max_length=50) phone: str | None = Field(None, max_length=30) email: str | None = Field(None, max_length=255) website: str | None = Field(None, max_length=500) description: str | None = None class CompanyResponse(BaseModel): id: str name: str account_number: str | None = None industry: str | None = None phone: str | None = None email: str | None = None website: str | None = None description: str | None = None created_at: str | None = None updated_at: str | None = None class CompanyDetailResponse(CompanyResponse): contacts: list[dict] = Field(default_factory=list) class CompanyListResponse(BaseModel): items: list[CompanyResponse] total: int page: int page_size: int class CompanyExportRequest(BaseModel): format: str = Field("csv", pattern="^(csv|xlsx)$") industry: str | None = None search: str | None = None