"""Schémas Pydantic pour les boutiques.""" from datetime import datetime from pydantic import BaseModel, ConfigDict, Field class ShopBase(BaseModel): """Schéma de base pour les boutiques.""" name: str = Field(..., min_length=1, max_length=200, description="Nom de la boutique") description: str | None = Field(None, max_length=1000, description="Description optionnelle") url: str | None = Field(None, max_length=500, description="URL du site web") address: str | None = Field(None, description="Adresse physique") class ShopCreate(ShopBase): """Schéma pour la création d'une boutique.""" pass class ShopUpdate(BaseModel): """Schéma pour la mise à jour d'une boutique (tous les champs optionnels).""" name: str | None = Field(None, min_length=1, max_length=200) description: str | None = Field(None, max_length=1000) url: str | None = Field(None, max_length=500) address: str | None = None class ShopResponse(ShopBase): """Schéma de réponse pour une boutique.""" model_config = ConfigDict(from_attributes=True) id: int created_at: datetime updated_at: datetime class ShopWithItemCount(ShopResponse): """Schéma de réponse avec le nombre d'objets.""" item_count: int = Field(default=0, description="Nombre d'objets achetés dans cette boutique")