Architecture AssoSuite
Statut
Document de cadrage AssoSuite — version initiale.
Vue d'ensemble
AssoSuite s'inscrit dans l'architecture Laravel modulaire de DMV.
Le module backend visible porte la logique métier associative : membres, invitations, cotisations, publications et projets.
État actuel visible
Le module est situé dans api/app/Modules/AssoSuite.
Il contient :
Controllerspour les endpoints applicatifs ;Modelspour les entités AssoSuite ;Servicespour la logique métier ;Requestspour les validations ;DTOspour les sorties structurées ;Middlewarepour le contrôle d'accès ;Routes/api.phppour les routes ;Providers/AssoSuiteServiceProvider.phppour l'enregistrement des services.
Routes et accès
Les routes visibles utilisent :
identify.app;auth:sanctum;asso.accesspour les routes nécessitant un membre actif ;- une route publique d'acceptation d'invitation par token.
Le middleware identify.app accepte assosuite comme source applicative dans le projet.
Modules et responsabilités
| Élément | Responsabilité |
|---|---|
AssoMemberController | Membres, invitations, suspension, départ. |
CotisationController | Plans, paiements, liste des cotisations. |
AssoProjectController | Projets associatifs. |
AssoPublicationController | Publications de groupe AssoSuite. |
EnsureAssoAccess | Vérifie qu'un utilisateur est membre actif de l'association. |
CotisationWriteService | Création de plans, paiements Stripe, webhooks. |
AssoProjectService | Création, mise à jour et archivage de projets. |
Données principales
Les tables Laravel visibles sont :
assosuite_members;assosuite_invitations;assosuite_cotisation_plans;assosuite_cotisations;assosuite_projects;chat_roomspour les salons liés aux projets.
Intégrations visibles
| Intégration | État visible |
|---|---|
| Publication | Réutilisation des services Publication. |
| Chat | Création de chat_room pour projets. |
| Stripe | Paiements et abonnements de cotisation. |
| Supabase | Service admin utilisé dans l'acceptation d'invitation. |
| Identity | Profil utilisateur utilisé pour auth et rattachement. |
Vision cible
La cible architecturale est :
- une API Laravel centrale pour la logique sensible ;
- des interfaces AssoSuite autonomes ;
- une mutualisation maîtrisée avec DMV ;
- une séparation nette entre interne associatif et public territorial ;
- une intégration IA via AI Gateway, pas par accès direct aux données ;
- une rationalisation progressive des dépendances historiques Supabase.
Points à clarifier
- Frontend dédié ou intégration à un espace existant.
- Stratégie d'API publique AssoSuite.
- Règles de versioning des routes.
- Gestion des documents et médias.
- Traçabilité des actions sensibles.