Domaines fonctionnels vérifiés
Cette page cartographie les domaines réellement visibles dans le repo, principalement à partir du schéma Convex et des modules métier inspectés.
Elle ne décrit pas encore toutes les règles détaillées de chaque domaine.
Cartographie Front (code-backed)
- Surface app :
web/src/app/(app) (expérience joueur).
- Surface auth :
web/src/app/(auth) (login, signup, onboarding, reset/forgot password, verify email).
- Surface admin :
web/src/app/admin (opérations d’administration produit).
Les parcours ci-dessus sont observés via la structure de routes du dépôt et servent de base de navigation produit/front dans la documentation.
Authentification, utilisateurs et profils
Éléments vérifiés :
- tables Auth Convex via
authTables ;
- table
users ;
- table
user_profiles ;
- tokens d’email verification ;
- tokens de reset de mot de passe.
Le modèle utilisateur contient notamment :
- email ;
- username ;
- rôle global
USER, ADMIN ou MODERATOR ;
- statut de compte
ACTIVE, DEACTIVATED ou DELETED ;
- indicateur premium utilisateur ;
- index de recherche utilisateur.
Le profil joueur contient notamment :
- display name ;
- avatar / bannière / logo ;
- pays ;
- positions préférées ;
- identité EA : plateforme, gamertag, EA player id ;
- Discord ID et téléphone optionnels ;
- indicateur
openToOffers.
Clubs et effectifs
Éléments vérifiés :
- table
clubs ;
- table
club_members ;
- table
club_stream_links ;
- module
convex/social/clubs.ts.
Un club possède notamment :
- un GM utilisateur ;
- un nom ;
- un état actif ;
- des informations EA Club ;
- logo, logo premium, bannière ;
- couleurs primaire/secondaire ;
- description, abréviation, pays ;
- indicateur premium club ;
- index de recherche.
Les membres de club ont un statut :
IN_CLUB ;
FREE_AGENT ;
INACTIVE.
Les rôles d’effectif vérifiés sont :
MANAGER ;
CO_MANAGER ;
COACH ;
MEMBER.
Les liens de stream club supportent actuellement :
Ligues, saisons et classements
Éléments vérifiés :
- table
leagues ;
- table
league_clubs ;
- table
league_player_stats_aggs ;
- tables de snapshot calendrier.
Une ligue contient notamment :
- nom ;
- logo ;
- saison ;
- région ;
- statut ;
- dates de début/fin ;
- limite de clubs ;
- règles de roster ;
- paramètres de planification ;
- nombre total de reports par club ;
- règles textuelles.
Statuts de ligue vérifiés :
INSCRIPTIONS ;
ONGOING ;
COMPLETED ;
CANCELLED ;
ARCHIVED.
Matchs, planification, résultats et reports
Éléments vérifiés :
- table
matches ;
- table
match_results ;
- table
match_scheduling_propositions ;
- table de reports de match ;
- table
disputes ;
- module
convex/competition/matches.ts repéré ;
- module
convex/competition/match_lineups.ts inspecté en détail pour les compositions.
Un match contient notamment :
- ligue ;
- club domicile ;
- club extérieur ;
- journée ;
- date planifiée
scheduledAt ;
- date originale et informations de report ;
- statut ;
- indicateur actif ;
- statut de synchronisation score EA ;
- référence EA match optionnelle ;
- informations de pari.
Les résultats stockent :
- score domicile / extérieur ;
- origine du résultat
NORMAL ou CLUB_FORFEIT ;
- snapshots avant forfait pour restauration ;
- contestation / litige ;
- validation admin ;
- soumissions séparées des GM domicile et extérieur.
Les propositions de planning ont les statuts :
PENDING ;
ACCEPTED ;
REJECTED ;
EXPIRED ;
CANCELLED.
Les litiges ont les statuts :
Compositions d’avant-match
Éléments vérifiés :
- table
match_lineups ;
- module
convex/competition/match_lineups.ts ;
- actions d’audit
SAVE_DRAFT_LINEUP_OVERRIDE et SUBMIT_LINEUP_OVERRIDE.
Une composition contient :
- match ;
- club ;
- formation ;
- assignments par slot ;
- poste détaillé optionnel ;
- statut
draft ou submitted ;
- date de soumission ;
- auteur de soumission.
Les postes détaillés vérifiés dans les lineups sont :
GK ;
DG, DC, DD ;
MDC, MC, MOC, MG, MD ;
AG, AD, BU.
Statistiques EA FC et statistiques match
Éléments vérifiés :
- table
match_player_stats ;
- table
match_team_stats ;
- table
match_ea_unmatched_player_stats ;
- tables
ea_api_cache, ea_circuit_state, ea_signup_tokens, ea_sync_metrics.
Les statistiques joueur contiennent notamment :
- minutes jouées ;
- buts ;
- passes décisives ;
- cartons ;
- note ;
- passes, tacles, récupérations ;
- arrêts ;
- tirs ;
- précision de tir ;
- dribbles ;
- hors-jeu ;
- fautes ;
- pertes de balle ;
- buts encaissés ;
- clean sheets ;
- score de performance ;
- poste et poste détaillé.
Les stats EA non matchées permettent de conserver les lignes EA qui ne correspondent pas automatiquement à un joueur CEL.
Annonces
Éléments vérifiés :
- table
announcements ;
- table
announcement_reads ;
- module
convex/social/announcements.ts.
Les annonces supportent :
- tags ;
- statuts ;
- ciblage global, club ou ligue ;
- placements dashboard, bannière, all global, mur de club ;
- source de création ;
- fenêtres de publication ;
- lien optionnel ;
- compteur de lecture par utilisateur.
- intégration front : barre d’annonce (
components/announcements/AnnouncementTicker) et mur club (components/club/ClubWall) (non vérifié pour la couverture exhaustive des placements).
Articles, commentaires et réactions
Éléments vérifiés :
- table
articles ;
- table
article_comments ;
- table
article_likes ;
- table
article_comment_likes ;
- table
article_comment_dislikes.
Catégories article vérifiées :
MATCH_RECAP ;
PLAYER_PROFILE ;
CLUB_NEWS ;
LEAGUE_UPDATE ;
COMMUNITY ;
GUIDE.
Statuts article vérifiés :
DRAFT ;
PUBLISHED ;
ARCHIVED.
Sur la surface front :
- route publique :
web/src/app/(app)/journal/[slug] ;
- lecture des commentaires sur les pages articles ;
- administration dédiée :
web/src/app/admin/articles et web/src/app/admin/articles/comments.
Notifications, emails et push
Éléments vérifiés :
- table
notifications ;
- table
push_subscriptions ;
- table
notification_preferences ;
- table
email_outbox ;
- table
email_delivery_logs ;
- modules de messaging repérés dans
convex/messaging/*.
Le système supporte :
- notifications in-app ;
- déduplication par
dedupKey ;
- préférences push ;
- abonnements Web Push ;
- outbox email ;
- logs de livraison Resend.
Sanctions et modération
Éléments vérifiés :
- table
sanctions ;
- modèle canonique de sanction personne documenté dans le README ;
- actions d’audit liées aux sanctions.
Les effets vérifiés sont :
APP_ACCESS ;
SPORT_ELIGIBILITY ;
VISIBILITY ;
CONTACT.
Les états de cycle de vie vérifiés sont :
ACTIVE ;
ENDED_MANUAL ;
ENDED_EXPIRED ;
ENDED_REPLACED.
Transferts et mercato
Éléments vérifiés :
- table
transfer_windows ;
- table
transfers ;
- table
premium_contract_breaks ;
- module
convex/social/transfers_core.ts repéré.
Types de transfert vérifiés :
INVITATION ;
JOIN_REQUEST ;
TRANSFER_REQUEST ;
KICK ;
LEAVE.
Statuts de transfert vérifiés :
PENDING ;
APPROVED ;
EXECUTED ;
REJECTED ;
CANCELLED ;
EXPIRED.
Forfaits club
Éléments vérifiés :
- table
club_forfeits ;
- champs forfait dans
match_results ;
- actions d’audit
DECLARE_CLUB_FORFEIT, CANCEL_CLUB_FORFEIT, APPLY_CLUB_FORFEIT.
Le modèle de forfait club supporte :
- un club concerné ;
- une ligue ;
- une saison optionnelle ;
- un déclarant ;
- un scope ;
- une date d’effet ;
- un statut actif ou annulé ;
- une raison et une note admin.
Paris / pronostics
Éléments vérifiés :
- table
bets ;
- champs
bettable et bettingWave sur les matchs ;
- actions d’audit liées aux paris.
Types de prédiction vérifiés :
HOME ;
DRAW ;
AWAY ;
EXACT_SCORE.
Statuts de pari vérifiés :
PENDING ;
WON ;
LOST ;
CANCELLED.
Récompenses, palmarès, MVP, meilleur GK, TOTS et TOTW
Éléments vérifiés :
- table
season_awards ;
- table
season_award_previews ;
- table
season_award_entries ;
- table
award_recipients ;
- table
team_of_the_week ;
- table
team_of_the_week_players ;
- module
convex/competition/season_awards.ts ;
- module
convex/lib/season_mvp.ts ;
- frontend
web/src/app/admin/season-awards/_hooks/use-season-awards.ts ;
- frontend
web/src/app/(app)/palmares/[awardId]/page.tsx repéré ;
- composant
web/src/components/club/ClubPalmaresTab.tsx repéré ;
- composant
web/src/components/club/ClubChampionCelebration.tsx repéré.
Catégories de palmarès saison vérifiées :
CHAMPION ;
RUNNER_UP ;
SEASON_MVP ;
BEST_GK ;
TOTS.
Types de bénéficiaires historiques vérifiés :
season_champion ;
season_runner_up ;
season_mvp ;
best_gk ;
tots ;
totw ;
motm.
Positionnement front (awards / palmarès / TOTW / TOTS) :
- page publique palmarès :
web/src/app/(app)/palmares/[awardId] ;
- page publique TOTW :
web/src/app/(app)/totw ;
- présentation palmarès en profil club :
web/src/components/club/ClubPalmaresTab.tsx ;
- administration :
web/src/app/admin/season-awards pour la gestion générale des awards et web/src/app/admin/totw pour la gestion TOTW.
Uploads et médias
Éléments vérifiés :
- table
upload_objects ;
- lifecycle upload utilisé dans le module club ;
- cache YouTube live
youtube_live_cache.
Stripe et premium
Éléments vérifiés :
- dépendances Stripe côté racine ;
- table
stripe_webhook_log ;
- table
stripe_customer_index ;
- champs premium sur
users et clubs ;
- table
premium_contract_breaks.
Les règles produit exactes du premium doivent encore être documentées après lecture des modules Stripe/premium.
Audit logs et système
Éléments vérifiés :
- table
audit_logs ;
- table
system_settings ;
- table
cron_executions ;
- table
migration_runs.
Les audit logs couvrent de nombreuses actions : clubs, ligues, matchs, résultats, litiges, sanctions, transferts, paris, utilisateurs, articles, commentaires, lineups, streams, palmarès et forfaits.Last modified on June 24, 2026