"""Client schemas for API serialization.""" from datetime import datetime from typing import Optional from uuid import UUID from pydantic import BaseModel, ConfigDict, EmailStr, Field class ClientCreate(BaseModel): """Schema for creating a new client.""" name: str = Field(..., min_length=1, max_length=255, description="Client/company name") contact_email: Optional[EmailStr] = Field(None, description="Primary contact email") billing_plan: str = Field("free", description="Billing plan") class ClientUpdate(BaseModel): """Schema for updating a client.""" name: Optional[str] = Field(None, min_length=1, max_length=255) contact_email: Optional[EmailStr] = None billing_plan: Optional[str] = None status: Optional[str] = Field(None, pattern="^(active|suspended|archived)$") class ClientResponse(BaseModel): """Schema for client API responses.""" model_config = ConfigDict(from_attributes=True) id: UUID name: str contact_email: Optional[str] billing_plan: str status: str created_at: datetime updated_at: datetime