# Modèle de données Statut: référence technique Public: mainteneurs, analystes, exploitants Dernière révision: 2026-06-01 Ce document décrit les tables SQLAlchemy de l'application et leur rôle. Il ne remplace pas les modèles du code; il donne la carte fonctionnelle. ## Principes - `groupes` est la racine métier. - Les données d'un groupe doivent être isolées par `groupe_id`. - Les membres ne sont pas supprimés pour l'historique; le droit à l'oubli anonymise. - Les propositions et décisions sont dans une seule table. - Les finances s'appuient sur un registre comptable. - Les mouvements de réserves sont historisés. - Les rapports adoptés sont cristallisés. ## Tables d'identité et groupes | Table | Rôle | | --- | --- | | `groupes` | Groupe AA, horaire, lieu, paramètres d'assemblée. | | `membres` | Membres du groupe, identifiant, PIN haché, profil, statut, préférences. | | `invitations` | Codes d'inscription et liens invités ciblés. | | `push_subscriptions` | Abonnements navigateur aux notifications push. | ## Tables de postes et accès | Table | Rôle | | --- | --- | | `postes` | Définition des postes d'un groupe. | | `affectations` | Mandats actifs ou terminés entre membre et poste. | | `rotations` | Planification et historique de rotations. | | `candidatures` | Candidatures et propositions de candidature. | | `postes_modules` | Permissions de modules accordées à un poste. | ## Tables de rencontres et assemblées | Table | Rôle | | --- | --- | | `reunions` | Rencontres hebdomadaires et assemblées d'affaires. | | `presences` | Présences rattachées à une réunion. | | `pv_reunions` | Procès-verbaux préparés ou adoptés. | | `rapport_rsg` / `rapports_rsg` | Rapports RSG. | | `rapports_adoptes` | Rapports cristallisés après adoption. | ## Tables de gouvernance | Table | Rôle | | --- | --- | | `propositions` | Propositions, rejets, résolutions, nominations et contributions adoptées. | Champs conceptuels importants de `propositions`: - proposition: objet, contenu, auteur, proposeur, secondeur, statut; - rejet: statut rejeté et raison; - décision: type, numéro, date d'adoption, `ÉTANT DONNÉ QUE`, `LE GROUPE A DÉCIDÉ DE`. ## Tables financières | Table | Rôle | | --- | --- | | `collectes` | Collectes de rencontres et réception par le trésorier. | | `depenses` | Dépenses soumises, traitées, rejetées ou débitées. | | `operations_bancaires` | Dépôts, retraits et opérations bancaires. | | `transactions_comptables` | Source de vérité des soldes banque/encaisse. | | `reserves` | Réserves nommées du groupe. | | `mouvements_reserves` | Historique des virements entre disponible et réserves. | | `destinataires_contributions` | Destinataires possibles des contributions. | | `envois_contributions` | Contributions préparées et traitées. | | `config_repartition` | Pourcentages de répartition suggérée. | ## Tables d'inventaire | Table | Rôle | | --- | --- | | `litterature` | Catalogue et stock de littérature. | | `ventes_litterature` | Ventes de littérature et remise au trésorier. | | `jetons` | Remises statistiques de jetons/gâteaux. | | `ventes_jetons` | Ventes de jetons affectant l'inventaire et l'encaisse à recevoir. | ## Tables de calendrier et rapports | Table | Rôle | | --- | --- | | `evenements` | Événements affichés au calendrier. | | `sync_log` | Trace technique de synchronisation ou usage historique. | ## Tables de journalisation | Table | Rôle | | --- | --- | | `journal_actions` | Journal automatique des appels API modifiants. | | `historique_modifications` | Historique métier détaillé des modifications, ancienne valeur, nouvelle valeur et raison automatique. | ## Tables mortes supprimées au démarrage Le démarrage supprime les anciennes tables devenues obsolètes: - `votes`; - `options_sondage`; - `sondages`; - `decisions`. ## Points de vigilance - Une relation 1:1 ne justifie pas à elle seule la fusion de deux tables. Il faut aussi vérifier le cycle de vie, le niveau d'accès, l'historisation, la fréquence d'usage et la signification métier. - Les caches de montant ou de statut ne doivent pas remplacer les registres d'origine. - Toute nouvelle table métier doit documenter son rattachement à un groupe.