""" Schemas Pydantic para Grupo de Vehículos. """ from typing import List, Optional from pydantic import Field from app.schemas.base import BaseSchema, TimestampSchema class GrupoVehiculosBase(BaseSchema): """Schema base de grupo de vehículos.""" nombre: str = Field(..., min_length=2, max_length=100) descripcion: Optional[str] = None color: str = Field(default="#3B82F6", pattern=r"^#[0-9A-Fa-f]{6}$") icono: Optional[str] = Field(None, max_length=50) class GrupoVehiculosCreate(GrupoVehiculosBase): """Schema para crear grupo de vehículos.""" pass class GrupoVehiculosUpdate(BaseSchema): """Schema para actualizar grupo de vehículos.""" nombre: Optional[str] = Field(None, min_length=2, max_length=100) descripcion: Optional[str] = None color: Optional[str] = Field(None, pattern=r"^#[0-9A-Fa-f]{6}$") icono: Optional[str] = Field(None, max_length=50) class GrupoVehiculosResponse(GrupoVehiculosBase, TimestampSchema): """Schema de respuesta de grupo de vehículos.""" id: int cantidad_vehiculos: Optional[int] = None class GrupoVehiculosConVehiculos(GrupoVehiculosResponse): """Schema con lista de vehículos del grupo.""" vehiculos: List["VehiculoResumen"] = [] # Import circular fix from app.schemas.vehiculo import VehiculoResumen # noqa: E402 GrupoVehiculosConVehiculos.model_rebuild()