groupe-meditation/docs/50_MODELE_DONNEES.md

4.3 KiB

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 Renseignements de service portés par le RSG: district, région, sujets au groupe, positions transmises et suivis.
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.