"""Schémas Phase 1 — Saisies hebdomadaires.""" from pydantic import BaseModel from datetime import date, datetime from uuid import UUID from typing import Optional # ── S1 Collecte ── class CollecteCreate(BaseModel): date_collecte: date montant: float reunion_id: Optional[UUID] = None class CollecteOut(BaseModel): id: UUID date_collecte: date montant: float saisi_par_prenom: Optional[str] = None cree_le: datetime model_config = {"from_attributes": True} # ── S4 Rapport de réunion ── class ReunionCreate(BaseModel): type: str = "reguliere" date_reunion: datetime theme: Optional[str] = None annonces: Optional[list[str]] = None note: Optional[str] = None class ReunionOut(BaseModel): id: UUID type: str date_reunion: datetime animateur_prenom: Optional[str] = None theme: Optional[str] = None annonces: Optional[list[str]] = None note: Optional[str] = None cree_le: datetime model_config = {"from_attributes": True} # ── S5 Dépense (6 champs) ── class DepenseCreate(BaseModel): date_depense: date montant: float qui: UUID # membre_id quoi: str paye: bool = False methode: str # DU, VIREMENT, CHEQUE, COLLECTE class DepenseOut(BaseModel): id: UUID date_depense: date montant: float qui_prenom: Optional[str] = None quoi: str paye: bool methode: str saisi_par_prenom: Optional[str] = None cree_le: datetime model_config = {"from_attributes": True} class DepenseUpdate(BaseModel): paye: Optional[bool] = None methode: Optional[str] = None quoi: Optional[str] = None