Files
home_stock/backend/app/schemas/shop.py
2026-02-01 01:45:51 +01:00

46 lines
1.3 KiB
Python

"""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")