Entités binomes — Cœur métier

Retour : sommaire du module.

Jeune

Table : jeune Description : Profil d'un jeune accompagné dans le cadre du programme de mentorat, avec ses informations personnelles, scolaires, ses préférences et son statut dans le parcours.

Champ Type Description
id bigint Identifiant primaire.
charteJeune boolean (nullable) Charte mentorat signée dans l'ancien funnel d'inscription (toggle inscriptionJeuneV2 à off). Aussi posée à true dans le cas V2.
academy varchar(255) (nullable) Académie scolaire du jeune. Recalculée automatiquement à partir de schoolDepartment à l'inscription et à chaque update.
acceptSurvey boolean (nullable) Acceptation de participer à des enquêtes.
qpv boolean (nullable) Résidence en quartier prioritaire de la ville.
zrr boolean (nullable) Résidence en zone de revitalisation rurale.
appel boolean (nullable) Obsolète. Ancien flag d’appel positif (premier contact EL). Conservé en base, plus saisi ni affiché.
bam boolean (nullable) Indicateur lié au programme BAM.
stem boolean (nullable) Indicateur lié à une filière STEM (étudiantes gender = female en PP en filière STEM, indépendamment de la région d'études).
stemAppel1 timestamp (nullable) Date du 1er appel STEM.
stemAppel2 timestamp (nullable) Date du 2e appel STEM.
stemSms1 timestamp (nullable) Date du 1er SMS STEM.
stemSms2 timestamp (nullable) Date du 2e SMS STEM.
stemNotInterested tinyint (nullable) Le jeune n'est pas intéressé par le programme STEM.
stemInterested tinyint (nullable) Le jeune est intéressé par le programme STEM.
stemNoResponse tinyint (nullable) Absence de réponse du jeune concernant STEM.
boursier varchar(255) (nullable) Statut de boursier.
moyenne varchar(255) (nullable) Moyenne scolaire du jeune.
boursierLevel varchar(255) (nullable) Niveau de bourse.
firstName varchar(255) (nullable) Prénom du jeune.
situation varchar(255) (nullable) Situation actuelle du jeune.
cityCode varchar(255) (nullable) Code postal/commune de l'adresse indiquée lors du bac (personnalisation.vue). Obligatoire à l'inscription sauf si étudiant à l'étranger — règle portée uniquement par le front (nullable en DB, @IsOptional côté back). Modifiable ensuite via l'espace perso ou le back-office ; une valeur vide envoyée n'écrase pas l'ancienne (fallback).
cityName varchar(255) (nullable) Nom de la ville de résidence.
creationDate timestamp (nullable) Date de création du profil.
sectors json (nullable) Obligatoire pour les mentorés et les jeunes avec besoin = pro. Secteurs visés par le jeune. 0 à 2 max. Renseigné lors de l'onboarding mentoré (question « Dans quel(s) secteur(s) aimerais-tu travailler ? »).
sectorAutre varchar(255) (nullable) Secteur d'intérêt "autre" saisi librement.
legalRepresentativePhone varchar(255) (nullable) Téléphone du représentant légal.
legalRepresentativeMail varchar(255) (nullable) Email du représentant légal.
mail varchar(255) (nullable) Email du jeune.
minor boolean (nullable) Le jeune est mineur. Funnel v2 : posé à la finalisation depuis la date de naissance ; le jeune reste INSCRIT sans onboarding mentorat.
phone varchar(255) (nullable) Téléphone du jeune.
validateMailSent varchar(255) (nullable) Compteur/statut d'envoi de l'email de validation.
validateSmsSent varchar(255) (nullable) Compteur/statut d'envoi du SMS de validation.
precision varchar(1000) (nullable) Précision libre sur le profil.
schoolClass varchar(255) (nullable) Niveau d'études actuel. Obligatoire pour les mentorés. Rempli lors de l'inscription si objectif = reussir-annee, sinon lors de l'onboarding. Valeurs possibles : Bac+1, Bac+2, Bac+3, Bac+4, Bac+5, Au-delà, Autre. Pas de colonne dédiée pour l'année visée par reussir-annee — remplace l'ancienne colonne anneeEnvisage, supprimée.
schoolRegion varchar(255) (nullable) Région de l'établissement scolaire. Recalculée à la persistance (JeuneRepository.save / update / merge) à partir de schoolDepartment.
schoolDepartment varchar(255) (nullable) Département de l'établissement scolaire.
schoolName varchar(255) (nullable) Nom de l'établissement scolaire.
schoolNameAutre varchar(255) (nullable) Nom d'établissement "autre" saisi librement.
filieres json (nullable) Liste des filières du jeune (en pratique un tableau à un élément). Aussi utilisée pour la filière visée par l'objectif reussir-annee.
filiereAutre varchar(255) (nullable) Filière "autre" saisie librement.
schoolCursus varchar(255) (nullable) Cursus scolaire suivi (remplace type, voir valeurs usuelles). Aussi utilisé pour le cursus visé par l'objectif reussir-annee.
cursusAutre varchar(255) (nullable) Cursus "autre" saisi librement.
bacDepartment varchar(255) (nullable) Département du baccalauréat.
scoreEngagement bigint (nullable) Score d'engagement historique. Plus calculé ni affiché ; conservé en base pour les jeunes qui l'avaient déjà.
reasonsScoreEngagement json (nullable) Raisons historiques du score d'engagement. Plus calculé ni affiché ; conservé en base pour les jeunes qui l'avaient déjà.
bacSchool varchar(255) (nullable) Établissement du baccalauréat.
status varchar(255) (nullable) Statut du jeune dans le parcours.
raisonNonDispo varchar(255) (nullable) Raison d'indisponibilité.
raisonLockInscription varchar(255) (nullable) Raison de blocage de l'inscription.
raisonLeaveFlash varchar(255) (nullable) Raison de sortie du dispositif Flash.
statusUpdateDate timestamp (nullable) Date de dernière mise à jour du statut.
streetName varchar(255) (nullable) Nom de rue de l'adresse.
streetNumber varchar(255) (nullable) Numéro de rue de l'adresse.
besoins json (nullable) Liste des besoins du jeune (slug + sous-catégories).
tempbesoins json (nullable) Besoins temporaires du jeune (slug + sous-catégories).
passions json (nullable) Liste des passions du jeune.
keywords json (nullable) Mots-clés associés au jeune.
type varchar(255) (nullable) Obsolète, remplacé par schoolCursus (voir valeurs usuelles).
state varchar(255) (nullable) (défaut: 'Autonome') État courant du jeune dans le parcours.
stateUpdateDate timestamp (nullable) Date de dernière mise à jour de l'état.
mood varchar(255) (nullable) Humeur/ressenti général du jeune.
knowledge varchar(255) (nullable) Niveau de connaissance déclaré.
moodBuild varchar(255) (nullable) Ressenti sur la phase de construction.
moodInsertion varchar(255) (nullable) Ressenti sur la phase d'insertion.
entourage varchar(255) (nullable) Information sur l'entourage du jeune.
tutors json (nullable) Informations sur les tuteurs du jeune.
situations json (nullable) Liste des situations du jeune.
about varchar(1000) (nullable) Motivation du jeune à rejoindre le mentorat (programme EL) — label « Peux-tu nous partager en quelques lignes ta motivation à rejoindre ce programme ? », étape "A propos du mentorat" de l'onboarding, modifiable ensuite en profil et en BO (section "EL").
readStory boolean (nullable) Le jeune a lu la "story" de présentation.
seeVideo boolean (nullable) Le jeune a vu la vidéo de présentation.
refusePremer integer (nullable) Compteur/indicateur de refus de premier rendez-vous.
linkedin varchar (nullable) Lien du profil LinkedIn.
diplomeName varchar (nullable) Nom du diplôme visé/obtenu.
userId varchar Référence vers le compte utilisateur associé.
knownBy varchar (nullable) Origine de la connaissance du dispositif (comment le jeune en a entendu parler).
dispoEvents boolean (nullable) Disponibilité pour participer à des événements.
filiereBac varchar (nullable) Filière du baccalauréat.
mentionBac varchar (nullable) Mention obtenue au baccalauréat.
projetteEtude varchar (nullable) Obligatoire pour les mentorés. Réponse à la question Quel niveau d'études aimerais-tu atteindre ? dans l'onboarding mentoré.
jobIdeal varchar (nullable) Obligatoire pour les mentorés. Réponse à la question « Quel est ton job idéal ? » de l'onboarding mentoré.
spSoutiensProches varchar (nullable) Obligatoire pour les mentorés. Réponse à la question « Tes proches peuvent-ils te soutenir dans tes choix ? » de l'onboarding mentoré.
spNiveauParents varchar (nullable) Obligatoire pour les mentorés. Réponse à la question « Quel est le niveau d'études de tes parents ou tuteurs ? » de l'onboarding mentoré.
spBesoinsMensuels varchar (nullable) Facultatif. Réponse à l'affirmation « Je considère que je n'ai pas assez d'argent pour couvrir mes besoins mensuels » (situations particulières de l'onboarding mentoré).
spActiviteRemuneree varchar (nullable) Facultatif. Réponse à l'affirmation « J'ai une activité rémunérée, qui n'est pas liée au contenu de mes études » (situations particulières de l'onboarding mentoré).
spIsolementFamilial varchar (nullable) Facultatif. Réponse à l'affirmation « Je vis loin de ma famille » (situations particulières de l'onboarding mentoré).
spIsolementEtudiant varchar (nullable) Facultatif. Réponse à l'affirmation « Je me sens isolé(e) des autres étudiants de ma formation » (situations particulières de l'onboarding mentoré).
objectifs varchar (nullable) Objectif du jeune (slug). Pas de contrainte en base ; valeurs posées par le funnel v2 selon besoins (voir front/static/model/BesoinsJeuneV2.js) — cas pro : stage, alternance, emploi ; cas study : reussir-annee, candidater, concours. D'anciennes valeurs issues du funnel legacy (libellés en clair, ex. "Valider mon année d'étude", voir front/static/model/Objectifs.js) peuvent subsister sur des jeunes plus anciens.
posteEnvisage varchar (nullable) Poste envisagé par le jeune.
localisationEnvisage varchar (nullable) Localisation envisagée par le jeune.
diplomeOuConcoursEnvisage varchar (nullable) Diplôme ou concours envisagé.
dateEnvisage date (nullable) Date envisagée pour l'objectif.
frequence varchar (nullable) Fréquence d'accompagnement souhaitée.
programme varchar (nullable) Programme suivi par le jeune (PP / PNP). Valeur EL obsolète, remplacée par le booléen EL. Posé à l'inscription / QPV-ZRR, modifiable admin, pas recalculé à la MAJ profil.
EL boolean (défaut: false) Facultatif. Indique si le jeune est considéré EL. MAJ à la fin de l’onboarding (et à la MAJ profil).
wannaBeEL boolean (nullable) Obsolète. Ancien souhait de devenir EL. Conservé en base, plus utilisé par le calcul.
badges json (nullable) Badges obtenus par le jeune.
registerBamDate timestamp (nullable) Date d'inscription au programme BAM.
plannedBamDate timestamp (nullable) Date planifiée pour le BAM.
participationBamDate timestamp (nullable) Date de participation effective au BAM.
proposedCallDate timestamp (nullable) Obsolète. Ancienne date d'appel proposée (premier contact EL). Conservé en base.
callDate timestamp (nullable) Obsolète. Ancienne date de l'appel (premier contact EL). Conservé en base.
participationCallDate timestamp (nullable) Obsolète. Ancienne date de participation à l'appel (premier contact EL). Conservé en base.
resultCall varchar (nullable) Obsolète. Ancien résultat d'appel (premier contact EL). Conservé en base, plus saisi ni affiché.
hasVisitedDashboard boolean (nullable) (défaut: false) Le jeune a visité son tableau de bord.
hasDismissedOnboardingMentoratPopup boolean (nullable) (défaut: false) Le jeune a fermé la pop-up dashboard de reprise d'inscription mentorat (one-shot, colonne has_dismissed_onboarding_mentorat_popup).
matchingInstantaneRefuse tinyint (nullable) true si le jeune a refusé explicitement les 3 mentors du matching instantané ; NULL sinon (vidé au passage MATCHE).
sourceMentoratLp boolean (nullable) Inscription issue du CTA LP ?source_mentorat_LP=true.
sourceMentoratBesoin boolean (nullable) Inscription ayant sélectionné le besoin lost au moment de la finalisation.
sourceMentoratDashboard boolean (nullable) Facultatif. Le mentoré a cliqué sur l’encart mentorat depuis le dashboard. Marqueur uniquement (ne déclenche pas l’onboarding à lui seul) ; posé avec status et status_onboarding au clic « Commence l’aventure ».
statusOnboarding varchar(16) (nullable) Progression de l'onboarding mentorat : NON_COMMENCE, EN_COURS ou TERMINE; null hors mentorat. Post-MEP (toggle v2, hors MVLS) : le bouton Gestion passe les APTE non TERMINE en EN_COURS_ONBOARDING ; statusOnboarding n'est remis à NON_COMMENCE que s'il n'était pas déjà EN_COURS.
charteMentorat boolean (défaut: false) Charte mentorat signée dans l'onboarding V2 (toggle inscriptionJeuneV2 à on).
onboardingStartedDate datetime (nullable) Facultatif. Date et heure où le mentoré a cliqué sur Commencer dans l'étape 1 de l’onboarding mentoré
onboardingEndedDate datetime (nullable) Facultatif. Date et heure où le mentoré a terminé son onboarding en validant la charte.
datePassageMentor datetime (nullable) Facultatif. Date et heure où le jeune a commencé son inscription mentor (passage mentoré → mentor). Non renseigné tant que le parcours n’est pas livré.
prioritization smallint (nullable) Score de priorisation calculé à la fin de l'onboarding mentoré (validation charte). Valeur de 0 à 100. Calculé par ScorePrioritizationAlgorithm. null si onboarding non complété.
prioritizationBreakdown text (nullable) Détail du score de priorisation par critère, au format JSON ({ criterion: score }). Stocké en même temps que prioritization.
suiviRenforce boolean (nullable) Indique si le jeune bénéficie d'un suivi renforcé de l'équipe Article 1. Calculé à la validation de la charte : true si prioritization >= 40, false sinon. Seuil statique en v1, modifiable ultérieurement.
etudiantEtranger boolean (nullable) Le jeune est étudiant étranger.
ase boolean (nullable) Le jeune relève de l'Aide Sociale à l'Enfance.
suiviAve boolean (nullable) Suivi dans le cadre du dispositif AVE.
commentAve varchar (nullable) Commentaire lié au suivi AVE.
bourseAve varchar (nullable) Information de bourse liée à l'AVE.
chiffreAve varchar (nullable) Donnée chiffrée liée à l'AVE.
anneeAve varchar (nullable) Année liée au suivi AVE.
callMonthDone boolean (défaut: false) Obsolète. Ancien appel de suivi 45j effectué. Conservé en base, plus saisi ni affiché.
adminId varchar (nullable) Référence vers l'administrateur en charge. Non renseigné à l'inscription : uniquement via matching instantané ou assignation manuelle.
externalInfos json (nullable) Informations externes additionnelles.

Relations :

  • extraitPrecision : OneToOne → JeuneExtraitPrecision
  • binomes : OneToMany → Binome
  • flashs : OneToMany → Flash
  • admin : ManyToOne → User (FK admin_id)
  • user : OneToOne → User (FK user_id)
  • denyProlongation : OneToMany → DenyProlongation
  • adminReservation : OneToMany → AdminReservation
  • instantMatchingReservation : OneToMany → InstantMatchingReservation
  • emailCampaign : OneToMany → CampaignEmailsMonitoring
  • logStatuts : OneToMany → LogStatut
  • logNonDispos : OneToMany → LogNonDispo
  • logProgrammes : OneToMany → LogProgramme
  • logUpdates : OneToMany → LogUpdate
  • logAdminAssocies : OneToMany → LogAdminAssocie
  • logMails : OneToMany → LogMail
  • comments : OneToMany → Comments
  • commentsIndiv : OneToMany → CommentsIndiv
  • ave : OneToMany → JeuneAve
  • logStates : OneToMany → LogState
  • logSandbox : OneToMany → LogSandbox
  • logMatchingInstantaneRefuses : OneToMany → LogMatchingInstantaneRefuse
  • logScoreJeunes : OneToMany → LogScoreJeune
  • notifs : OneToMany → Notif

Benevole

Table : benevole Description : Profil d'un bénévole (mentor) accompagnant un ou plusieurs jeunes, avec ses informations personnelles, professionnelles et son statut dans le parcours.

Champ Type Description
id bigint Identifiant primaire.
creationDate timestamp (nullable) Date de création du profil.
department varchar(255) (nullable) Département de résidence.
helpType varchar(255) (nullable) Type d'aide proposée par le bénévole.
charteBenevole boolean (nullable) Acceptation de la charte bénévole.
acceptSurvey boolean (nullable) Acceptation de participer à des enquêtes.
mail varchar(255) (nullable) Email du bénévole.
majorWithNoCriminalRecord boolean (nullable) Majeur et sans casier judiciaire.
formation boolean (nullable) Formation suivie par le bénévole.
phone varchar(255) (nullable) Téléphone du bénévole.
validateMailSent varchar(255) (nullable) Compteur/statut d'envoi de l'email de validation.
validateSmsSent varchar(255) (nullable) Compteur/statut d'envoi du SMS de validation.
region varchar(255) (nullable) Région de résidence.
status varchar(255) (nullable) Statut du bénévole dans le parcours.
raisonNonDispo varchar(255) (nullable) Raison d'indisponibilité.
infosEp varchar(2000) (nullable) Informations "extrait précision" (visible admin uniquement).
nonDispoUntil timestamp (nullable) Date de fin d'indisponibilité.
statusUpdateDate timestamp (nullable) Date de dernière mise à jour du statut.
linkedin varchar(1000) (nullable) Lien du profil LinkedIn.
besoins json (nullable) Liste des besoins du bénévole (slug + sous-catégories).
precision varchar(1000) (nullable) Précision libre sur le profil.
firstName varchar(255) (nullable) Prénom du bénévole.
type varchar(255) (nullable) Type de profil bénévole.
boursier boolean (nullable) Statut de boursier (étudiant).
alternance boolean (nullable) Le bénévole est en alternance.
formationPosture boolean (nullable) Formation "posture" suivie.
formationStartedDate timestamp (nullable) Date de début de la formation.
formationEndedDate timestamp (nullable) Date de fin de la formation.
statusFormation varchar(255) (nullable) Statut d'avancement de la formation.
noDiplome tinyint (nullable) Absence de diplôme.
badgeCollectifMentorat tinyint (nullable) Badge collectif de mentorat obtenu.
userId varchar Référence vers le compte utilisateur associé.
knownBy varchar Origine de la connaissance du dispositif.
cible varchar (nullable) Cible/segment du bénévole.
badges json (nullable) Badges obtenus par le bénévole.
accompagnementDuration json (nullable) Durées d'accompagnement proposées.
experience varchar(255) (nullable) Expérience du bénévole.
statutActivite varchar(255) (nullable) Statut d'activité professionnelle.
secteurMetier varchar(255) (nullable) Secteur du métier du bénévole.
secteurMetierAutre varchar(255) (nullable) Secteur métier "autre" saisi librement.
secteurEmploi varchar(255) (nullable) Secteur d'emploi du bénévole.
secteurEmploiAutre varchar(255) (nullable) Secteur d'emploi "autre" saisi librement.
passions json (nullable) Liste des passions du bénévole.
multibinome boolean (défaut: false) Le bénévole est engagé dans plusieurs binômes.
excluInstantMatching boolean (défaut: false) Réservé pour le matching manuel : exclu du matching instantané et des résultats de l'algo.
nbBinomeActif real (nullable) Nombre de binômes actifs.
popupMultibinome boolean (défaut: false) Popup multibinôme déjà affichée.
futureTraitement boolean (défaut: false) Traitement futur en attente.
multibinomeDate timestamp (nullable) Date liée au passage en multibinôme.
state varchar(255) (nullable) (défaut: 'Autonome') État courant du bénévole dans le parcours.
stateUpdateDate timestamp (nullable) Date de dernière mise à jour de l'état.
externalInfos json (nullable) Informations externes additionnelles.
adminAssocieId varchar (nullable) Référence vers l'administrateur associé/suivi.

Relations :

  • extraitPrecision : OneToOne → BenevoleExtraitPrecision
  • adminAssocie : ManyToOne → User (FK admin_associe_id)
  • user : OneToOne → User (FK user_id)
  • binomes : OneToMany → Binome
  • flashs : OneToMany → Flash
  • postes : OneToMany → PosteBenevole
  • cursus : OneToMany → CursusBenevole
  • denyProlongation : OneToMany → DenyProlongation
  • adminReservation : OneToMany → AdminReservation
  • instantMatchingReservation : OneToMany → InstantMatchingReservation
  • emailCampaign : OneToMany → CampaignEmailsMonitoring
  • logStatuts : OneToMany → LogStatut
  • logNonDispos : OneToMany → LogNonDispo
  • logUpdates : OneToMany → LogUpdate
  • logMails : OneToMany → LogMail
  • logCibles : OneToMany → LogCible
  • logMultibinomes : OneToMany → LogMultibinome
  • logAdminAssocies : OneToMany → LogAdminAssocie
  • comments : OneToMany → Comments
  • commentsIndiv : OneToMany → CommentsIndiv
  • logStates : OneToMany → LogState
  • logSandbox : OneToMany → LogSandbox
  • notifs : OneToMany → Notif

Binome

Table : binome Description : Association entre un jeune et un bénévole formant un binôme de mentorat, avec son cycle de vie (statut, étapes, scoring, impact).

Champ Type Description
id bigint Identifiant primaire.
comment varchar(1000) (nullable) Commentaire libre sur le binôme.
score real (nullable) Score de matching du binôme.
scoreDetails varchar(2048) (nullable) Détail du calcul du score.
raisonAdmin varchar(400) (nullable) Raison saisie par l'administrateur.
status varchar(255) (nullable) Statut du binôme.
state varchar(255) (nullable) État courant du binôme dans le parcours.
stateUpdateDate timestamp (nullable) Date de dernière mise à jour de l'état.
twoDaysReminder timestamp (nullable) Date de relance à 48h.
callMonthDone boolean (défaut: false) Obsolète. Ancien appel de suivi 45j effectué. Conservé en base, plus saisi ni affiché.
callDoneInfos varchar(255) (nullable) Obsolète. Ancien motif du call de suivi 45j. Conservé en base, plus saisi ni affiché.
callDoneInfosAutre varchar(900) (nullable) Obsolète. Ancienne précision du call de suivi 45j. Conservé en base, plus saisi ni affiché.
cancellationReason varchar(255) (nullable) Raison d'annulation du binôme.
statusUpdateDate timestamp (nullable) Date de dernière mise à jour du statut.
creationDate timestamp (nullable) Date de création du binôme.
buildDate timestamp (nullable) Date de constitution du binôme.
nextStepDate timestamp (nullable) Date de la prochaine étape.
lastStepDone varchar(255) (nullable) Dernière étape réalisée.
sawVideoJeune boolean (nullable) Le jeune a vu la vidéo de présentation.
readMemoBenevole boolean (nullable) Le bénévole a lu le mémo.
priseContact boolean (nullable) Prise de contact effectuée.
datePriseContact timestamp (nullable) Date de la prise de contact.
sandbox enum('DEMA1N','SANDBOX','VOIEPRO','AFE','CAP ESSEC','HG Fondation','Fondation C&D','MJT','DRAJES','MVLS') (défaut: 'DEMA1N') Environnement/programme sandbox du binôme.
type enum('manuel','auto','instant') (défaut: 'manuel') Mode de création du binôme.
typeAlgo enum('classic','v2') (défaut: 'classic') Version de l'algorithme de matching utilisé.
main boolean (défaut: true) Indique si c'est le binôme principal.
alternativeId varchar (nullable) Référence vers un binôme alternatif.
highlightedPoste int (nullable) Poste mis en avant pour le binôme.
ignorePremerReason varchar (nullable) Raison d'ignorance du premier rendez-vous.
impactJ json (nullable) Données d'impact côté jeune (non sélectionné par défaut en requête).
impactB json (nullable) Données d'impact côté bénévole (non sélectionné par défaut en requête).
linkImpactJ varchar (nullable) Lien vers l'enquête d'impact jeune (visible admin/historique uniquement).
linkImpactB varchar (nullable) Lien vers l'enquête d'impact bénévole (visible admin/historique uniquement).
jeuneId varchar Référence vers le jeune du binôme.
benevoleId varchar Référence vers le bénévole du binôme.
adminId varchar (nullable) Référence vers l'administrateur en charge.
creatorMail varchar (nullable) Email de la personne à l'origine de la création.
firstMessageJeune text (nullable) Premier message envoyé par le jeune.
stepSequenceId varchar Référence vers la séquence d'étapes du binôme.

Relations :

  • alternativeBinome : ManyToOne → Binome (FK alternative_id)
  • jeune : ManyToOne → Jeune (FK jeune_id)
  • benevole : ManyToOne → Benevole (FK bv_id)
  • admin : ManyToOne → User (FK admin_id)
  • stepSequence : ManyToOne → StepSequence (FK stepSequence_id)
  • reponseBinomeLog : OneToMany → ReponseBinomeLog
  • suivistatus : OneToMany → Suivistatus
  • stepMessageBinome : OneToMany → StepMessageBinome
  • impacts : OneToMany → Impact
  • denyProlongation : OneToMany → DenyProlongation
  • comments : OneToMany → Comments
  • prolongation : OneToMany → Prolongation
  • lists : OneToMany → TodoList
  • logStatuts : OneToMany → LogStatut
  • logMails : OneToMany → LogMail
  • logAdminAssocies : OneToMany → LogAdminAssocie
  • logStates : OneToMany → LogState
  • logSandbox : OneToMany → LogSandbox
  • logPriseContact : OneToMany → LogPriseContact
  • notifs : OneToMany → Notif

User

Table : user Description : Compte utilisateur générique de la plateforme, support commun des profils jeune, bénévole et administrateur, lié à l'authentification SSO.

Champ Type Description
id bigint Identifiant primaire.
ssoId varchar(255) (nullable) Identifiant SSO (A1Connect) de l'utilisateur.
email varchar(127) (nullable) Email de l'utilisateur.
firstName varchar(255) (nullable) Prénom de l'utilisateur.
lastName varchar(255) (nullable) Nom de l'utilisateur.
gender varchar(255) (nullable) Genre de l'utilisateur.
birthday datetime (nullable) Date de naissance.
password varchar(255) (nullable) Mot de passe (non sélectionné par défaut en requête).
rgpdAccepted varchar(255) (nullable) Acceptation RGPD.
createdAt timestamp (nullable) Date de création du compte.
updatedAt timestamp (nullable) Date de dernière mise à jour du compte.
code varchar (nullable) Code associé à l'utilisateur.
activated boolean (défaut: false) Compte activé.
newsletter boolean (nullable) Abonnement à la newsletter.
activationToken varchar (nullable) Jeton d'activation du compte.
profile enum('user','admin','superadmin','observer','admin_deleted') (défaut: 'user') Profil/rôle de l'utilisateur.
sandbox enum('DEMA1N','SANDBOX','VOIEPRO','AFE','CAP ESSEC','HG Fondation','Fondation C&D','MJT','DRAJES','MVLS') (défaut: 'DEMA1N') Environnement/programme sandbox de l'utilisateur.

Relations :

  • benevole : OneToOne → Benevole
  • jeune : OneToOne → Jeune
  • administrator : OneToOne → Administrator
  • binomes : OneToMany → Binome
  • jeunesAssocies : OneToMany → Jeune
  • impacts : OneToMany → Impact
  • regions : OneToMany → RegionAdmin
  • filtersAdmin : OneToMany → FiltersAdmin
  • adminReservation : OneToMany → AdminReservation
  • emailCampaign : OneToMany → CampaignEmailsMonitoring
  • tutorials : OneToMany → Tutorial
  • logUpdates : OneToMany → LogUpdate
  • logUpdateAdmins : OneToMany → LogUpdateAdmin
  • logStates : OneToMany → LogState
  • logMails : OneToMany → LogMail
  • logAdminAssocies : OneToMany → LogAdminAssocie
  • comments : OneToMany → Comments
  • commentsIndiv : OneToMany → Comments
  • binomesSuivis : OneToMany → Benevole
  • notifs : OneToMany → Notif
  • logPriseContact : OneToMany → LogPriseContact

Administrator

Table : administrator Description : Informations complémentaires d'un utilisateur ayant un rôle d'administrateur (équipe, options, sandbox accessibles).

Champ Type Description
id bigint Identifiant primaire.
userId bigint Référence vers l'utilisateur associé.
code varchar (nullable) Code de l'administrateur.
team enum (nullable) Équipe de l'administrateur (valeurs définies dans TeamsList.json).
options json (nullable) Options de configuration de l'administrateur (vip, stem, manager, coordo, etc.). Le champ historique matching_instant n'est plus utilisé pour l'assignation MI.
availableSandbox json (nullable) Liste des sandbox/programmes accessibles à l'administrateur.
equipeId bigint (nullable) Équipe (groupe d'admins) à laquelle l'administrateur appartient. Un admin n'est dans qu'une seule équipe. L'appartenance ne se modifie pas via PUT /admin : uniquement via le CRUD equipe.
disponible boolean Si false, le CD n'est pas choisi pour un nouveau binôme en matching instantané. Défaut true. Édité par le coordo via PUT /equipe/me/members/:cdId. Pour recevoir un binôme MI, le CD doit aussi avoir un equipeId.
maxBinomes int Plafond de binômes du portefeuille (défaut 550). Le % de remplissage peut dépasser 100 %.

Relations :

  • user : OneToOne → User (FK user_id)
  • equipe : ManyToOne → Equipe (FK equipe_id)

Equipe

Table : equipe Description : Groupe d'administrateurs (CDs) dirigé par un unique coordo. Distinguer de administrator.team (équipe géographique).

Champ Type Description
id bigint Identifiant primaire.
name varchar Nom de l'équipe.
coordoUserId bigint Utilisateur coordo de l'équipe (NOT NULL + UNIQUE : 1 équipe = 1 coordo, 1 coordo = 1 équipe).
createdAt timestamp Date de création.
updatedAt timestamp Date de dernière mise à jour.

Invariants :

  • Une équipe a forcément un coordo (coordo_user_id obligatoire).
  • Un coordo ne dirige qu'une seule équipe.
  • Un admin ne peut être coordo que s'il dirige une équipe (flag options.options.coordo + ligne equipe).
  • Un admin n'appartient qu'à une seule équipe (administrator.equipe_id).
  • L'appartenance (equipe_id) n'est écrite que par le CRUD équipe, pas par la fiche admin.
  • Au moins un CD de l'équipe (hors coordo) doit rester disponible pour de nouveaux binômes instantanés.
  • Le DTO liste (membersCount) compte les CDs hors coordo dont le profil n'est pas admin_deleted. Le tableau members conserve aussi les CDs supprimés.

Relations :

  • coordo : OneToOne → User (FK coordo_user_id)

AdminReservation

Table : adminReservation Description : Réservation d'un jeune et/ou d'un bénévole par un administrateur, avec suppression logique (soft delete).

Champ Type Description
id bigint Identifiant primaire.
reservationDate timestamp Date de la réservation.
deletedAt timestamp (nullable) Date de suppression logique.
benevoleId varchar (nullable) Référence vers le bénévole réservé.
jeuneId varchar (nullable) Référence vers le jeune réservé.
adminId varchar Référence vers l'administrateur ayant fait la réservation.

Relations :

  • benevole : ManyToOne → Benevole (FK benevole_id)
  • jeune : ManyToOne → Jeune (FK jeune_id)
  • admin : ManyToOne → User (FK admin_id)

RegionAdmin

Table : regionadmin Description : Association entre un administrateur et une région géographique dont il a la charge.

Champ Type Description
id bigint Identifiant primaire.
region varchar(255) (nullable) Nom de la région.
userId varchar Référence vers l'administrateur associé.

Relations :

  • user : ManyToOne → User (FK user_id)

PosteBenevole

Table : postebenevole Description : Poste professionnel occupé (ou occupé précédemment) par un bénévole.

Champ Type Description
id bigint Identifiant primaire.
secteur varchar(255) (nullable) Secteur d'activité du poste.
secteurAutre varchar(255) (nullable) Secteur d'activité "autre" saisi librement.
poste varchar(255) (nullable) Intitulé du poste.
entreprise varchar(255) (nullable) Entreprise associée au poste.
infosEp varchar(2000) (nullable) Informations "extrait précision" (visible admin uniquement).
benevoleId varchar Référence vers le bénévole occupant le poste.
current boolean (nullable) Poste actuellement occupé.
dateDebut date (nullable) Date de début du poste.
dateFin date (nullable) Date de fin du poste.

Relations :

  • benevole : ManyToOne → Benevole (FK benevole_id)

CursusBenevole

Table : cursusbenevole Description : Cursus scolaire ou académique suivi (ou suivi précédemment) par un bénévole.

Champ Type Description
id bigint Identifiant primaire.
filiere varchar(255) (nullable) Filière du cursus.
filiereAutre varchar(255) (nullable) Filière "autre" saisie librement.
cursus varchar(255) (nullable) Nom du cursus.
cursusAutre varchar(255) (nullable) Cursus "autre" saisi librement.
niveau varchar(255) (nullable) Niveau d'études.
diplome varchar(255) (nullable) Diplôme obtenu ou visé.
annee integer (nullable) Année du cursus.
etablissement varchar(255) (nullable) Établissement fréquenté.
benevoleId varchar Référence vers le bénévole associé au cursus.

Relations :

  • benevole : ManyToOne → Benevole (FK benevole_id)

Companies

Table : companies Description : Entreprise partenaire, synchronisée avec Salesforce, utilisée pour rattacher des bénévoles ou des données à une organisation.

Champ Type Description
id bigint Identifiant primaire.
name varchar(255) Nom de l'entreprise.
idSalesforce varchar(255) (nullable) Identifiant Salesforce de l'entreprise (unique).
etiquette varchar(255) (nullable) Étiquette/label associée à l'entreprise.
lastModifiedDate varchar(255) Date de dernière modification (issue de Salesforce).
alias json (nullable) Liste des noms alternatifs de l'entreprise.

Partner

Table : partner Description : Partenaire externe de la plateforme, identifié par son email, avec des options de configuration libres.

Champ Type Description
id varchar Identifiant primaire.
creationDate timestamp (nullable) Date de création du partenaire.
mail varchar(255) (nullable) Email du partenaire (unique).
options json (nullable) Options de configuration du partenaire.
name varchar(255) (nullable) Nom du partenaire.