groupe-meditation/backend/app/schemas/phase6.py
2026-03-04 14:01:00 -05:00

61 lines
1.5 KiB
Python

"""Schémas Phase 6 — Littérature : inventaire, vente, ajustement."""
from pydantic import BaseModel
from datetime import date, datetime
from uuid import UUID
from typing import Optional
# ── Littérature (inventaire) ──
class LitteratureCreate(BaseModel):
titre: str
categorie: str # livre, brochure, depliant, pamphlet
prix_coutant: Optional[float] = None
quantite_stock: int = 0
seuil_commande: int = 2
code_bsg: Optional[str] = None
class LitteratureOut(BaseModel):
id: UUID
titre: str
categorie: str
prix_coutant: Optional[float] = None
quantite_stock: int
seuil_commande: int
code_bsg: Optional[str] = None
stock_bas: bool = False
model_config = {"from_attributes": True}
class LitteratureUpdate(BaseModel):
titre: Optional[str] = None
categorie: Optional[str] = None
prix_coutant: Optional[float] = None
seuil_commande: Optional[int] = None
code_bsg: Optional[str] = None
# ── M5 Ajuster inventaire ──
class AjustementStock(BaseModel):
quantite: int # positif = ajout, négatif = retrait
# ── S3 Vente littérature ──
class VenteCreate(BaseModel):
litterature_id: UUID
quantite: int
montant: float
date_vente: date
class VenteOut(BaseModel):
id: UUID
litterature_titre: str
quantite: int
montant: float
date_vente: date
vendu_par_prenom: Optional[str] = None
cree_le: datetime
model_config = {"from_attributes": True}