Skip to main content

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 :
  • Twitch ;
  • YouTube.

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 :
  • OPEN ;
  • RESOLVED.

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