from pydantic import BaseModel, EmailStr, Field from typing import Optional from datetime import datetime from app.models.enums import EstadoCliente class SubClienteBase(BaseModel): nombre: str = Field(..., min_length=1, max_length=255) email: EmailStr rfc: Optional[str] = Field(None, max_length=13) telefono: Optional[str] = Field(None, max_length=20) class SubClienteCreate(SubClienteBase): cliente_id: int limite_propio: Optional[int] = Field(None, ge=0) class SubClienteUpdate(BaseModel): nombre: Optional[str] = Field(None, min_length=1, max_length=255) email: Optional[EmailStr] = None rfc: Optional[str] = Field(None, max_length=13) telefono: Optional[str] = Field(None, max_length=20) limite_propio: Optional[int] = Field(None, ge=0) estado: Optional[EstadoCliente] = None class SubClienteResponse(SubClienteBase): id: int cliente_id: int timbres_consumidos: int limite_propio: Optional[int] estado: EstadoCliente created_at: datetime updated_at: Optional[datetime] class Config: from_attributes = True