Entités Utilisateurs
User
Table : users
Description : Représente un utilisateur dans le système (étudiant, enseignant, admin, etc.)
| Champ | Type | Description | Champ BigQuery |
|---|---|---|---|
id |
number |
Identifiant unique (hérité de BaseEntity) | - |
firstname |
string |
Prénom de l'utilisateur (max 200 caractères) | profile.firstName |
lastname |
string |
Nom de famille de l'utilisateur (max 200 caractères, non sélectionné par défaut) | profile.lastName |
fullname |
string |
Nom complet généré automatiquement (prénom + nom) | - |
resetPasswordOngoing |
boolean |
Indique si une réinitialisation de mot de passe est en cours (défaut: false) | - |
birthdate |
Date |
Date de naissance de l'utilisateur | profile.birthDate |
zipcode |
string |
Code postal de l'utilisateur (max 200 caractères) | profile.codePostal |
phoneNumber |
string |
Numéro de téléphone (max 200 caractères) | phoneNumber |
foreign |
boolean |
Indique si l'utilisateur est étranger (défaut: false) | profile.foreign |
gender |
enum |
Genre de l'utilisateur | profile.gender (mappé) |
flaggedForModeration |
string |
Raison du signalement pour modération (V1, max 200 caractères) | profile.flaggedForModeration |
newsletter |
boolean |
Abonnement à la newsletter (défaut: false) | profile.newsletter |
update_newsletter |
Date |
Date de dernière mise à jour de la newsletter | profile.update_newsletter |
roles |
enum[] |
Rôles de l'utilisateur (tableau) | profile.role (mappé) |
savedData |
jsonb |
Données sauvegardées de la V1 (non sélectionné par défaut) | Voir détails ci-dessous |
picture |
string |
URL de la photo de profil (max 1000 caractères) | profile.picture |
status |
string \| null |
Visibilité de l'éclaireur : null si l'user n'est pas éclaireur. caché par défaut à la création, visible quand l'EE a photo + parcours pour l'année en cours, peut repasser caché via le cron annuel du 1er août si aucun parcours depuis 2 ans. |
profile.status |
passageEclaireurAt |
Date |
Date de passage au statut éclaireur | profile.passageEclaireurAt |
isGuideAccepted |
boolean |
Indique si le guide a été accepté (défaut: false) | - |
isProfileComplete |
boolean \| null |
Profil éclaireur complet : null = pas éclaireur, false = éclaireur profil incomplet, true = éclaireur avec photo + parcours année en cours. Reset annuel au 1er août. |
isProfileComplete |
isElasticVerified |
boolean |
Indique si l'utilisateur est vérifié dans Elasticsearch (défaut: false) | - |
mvls |
enum |
Statut MVLS de l'utilisateur | - |
hasSeenMvlsPopup |
boolean |
Indique si l'utilisateur a vu la popup MVLS (défaut: false) | - |
hasSeenMvlsPrioPopup |
boolean |
Indique si l'utilisateur a vu la popup MVLS prioritaire (défaut: false) | - |
Valeurs possibles pour gender (GenderEnum) :
male: Masculinfemale: Fémininother: Autreno_answer: Sans réponse
Valeurs possibles pour roles (UserRoleEnum[]) :
admin: Administrateuruser: Utilisateur standardlyceen: Lycéeneclaireur: Éclaireursso-registered: Enregistré via SSOpedagogie: Pédagogieworker: Worker
Valeurs possibles pour mvls (UserMvlsEnum) :
mvls: A commencé l'inscription MVLS ou a été rajouté à la mainrefused: Refusébanned: Banni
Valeurs possibles pour status (UserStatusEnum) — uniquement pour les éclaireurs :
caché: par défaut à la création ; l’EE n’apparaît pas dans la recherchevisible: l’EE a complété son inscription (photo + parcours pour l’année en cours) ; seuls les éclaireursvisiblesont affichés aux lycéensinactif: non utilisé automatiquement — réservé à un usage manuel
Transitions automatiques :
- caché → visible : à la fin de l’inscription éclaireur (photo + parcours validés)
- visible → caché : cron annuel du 1er août (hideInactiveEclaireursForNewSchoolYear) si aucun parcours-éclaireur sur les 2 dernières années scolaires ; isElasticVerified repasse à false pour désindexation
Champs savedData (JSON) :
stateOfMind:stateOfMindactivitesBacPro:activitesBacProcurrentClasseId:currentClasseIdsavedParcoursLyceenData: Données de parcours lycéen sauvegardéessavedParcoursEclaireurData: Données de parcours éclaireur sauvegardées
Relations :
tags: Tags créés par l'utilisateurparcoursLyceens: Parcours lycéen de l'utilisateurparcoursEclaireurs: Parcours éclaireur de l'utilisateurmvlsEclaireurs: MVLS éclaireur de l'utilisateurmvlsLyceens: MVLS lycéen de l'utilisateuruserJwt: Informations d'authentificationcomments: Commentaires postés par l'utilisateurmedias: Médias créés par l'utilisateurchatChannels: Canaux de chat de l'utilisateuruserImpacts: Impacts utilisateur (avis sur pistes/articles)
UserJwt
Table : user-jwt
Description : Informations d'authentification et de sécurité des utilisateurs
| Champ | Type | Description | Champ BigQuery |
|---|---|---|---|
id |
number |
Identifiant unique (hérité de BaseEntity) | - |
username |
string |
Nom d'utilisateur unique (max 255 caractères) | username |
ssoId |
string |
Identifiant SSO pour liaison avec l'app A1C (max 4055 caractères) | ssoId |
password |
string |
Mot de passe hashé (non sélectionné par défaut, max 255 caractères) | services.password.bcrypt |
activated |
boolean |
Indique si le compte est activé (défaut: false) | emails[0].verified |
activationToken |
string |
Token d'activation (non sélectionné par défaut, max 255 caractères) | - |
lastLogin |
Date |
Date de dernière connexion | lastLogin |
oldId |
string |
Identifiant de l'ancienne base de données (max 200 caractères) | _id |
referredBy |
string |
Référent de l'utilisateur | - |
lastDayOfActivity |
Date |
Dernier jour d'activité | lastDayOfActivity |
forgetPasswordToken |
string |
Token de réinitialisation de mot de passe (non sélectionné par défaut, max 255 caractères) | - |
Etablissement
Table : etablissements
Description : Représente un établissement scolaire en France
| Champ | Type | Description | Champ BigQuery |
|---|---|---|---|
id |
number |
Identifiant unique (hérité de BaseEntity) | - |
old_id |
string |
Identifiant de l'ancienne base de données (max 255 caractères) | _id |
nom |
string |
Nom de l'établissement (max 255 caractères) | nom (lycées) / name (supérieur) |
typeEtablissement |
enum[] |
Types d'établissement (tableau) | typeEtablissement (lycées) / ['superieur'] (supérieur) |
ville |
string |
Ville de l'établissement (max 127 caractères) | ville (lycées) / commune (supérieur) |
academie |
string |
Académie de l'établissement (max 127 caractères) | academie |
departementCode |
string |
Code du département (max 8 caractères) | departementCode (lycées) / departement (supérieur, extrait) |
codePostal |
string |
Code postal (max 32 caractères) | codePostal (lycées) / cp (supérieur) |
adresse |
string |
Adresse complète (max 255 caractères) | adresse |
isPrioritaire |
boolean |
Indique si l'établissement est prioritaire | isPrioritaire (lycées) / null (supérieur) |
codeUai |
string |
Code établissement UAI (max 32 caractères) | uai_ips (lycées) / code_uai (supérieur) |
universiteDeRattachement |
string |
Université de rattachement (max 255 caractères) | null (lycées) / universite (supérieur) |
idEtablissementOnisep |
string |
Identifiant établissement Onisep (max 127 caractères) | null (lycées) / idEtablissementOnisep (supérieur) |
isDenied |
boolean |
Indique si l'établissement est refusé | - |
isPartenaire |
boolean |
Indique si l'établissement est partenaire | - |
Valeurs possibles pour typeEtablissement (TypeEtablissementEnum[]) :
lycee: Lycéesuperieur: Supérieur
Relations :
parcoursLyceens: Parcours lycéens de cet établissementparcoursEclaireurs: Parcours éclaireurs de cet établissementformations: Formations proposées par cet établissement
Formation
Table : formations
Description : Représente une formation proposée par un établissement
| Champ | Type | Description | Champ BigQuery |
|---|---|---|---|
id |
number |
Identifiant unique (hérité de BaseEntity) | - |
nom |
string |
Nom de la formation (max 255 caractères) | - |
idFormationOnisep |
string |
ID formation Onisep (max 32 caractères) | - |
typeFormation |
enum[] |
Types de formation (tableau) | - |
old_id |
string |
Identifiant de l'ancienne base de données (max 255 caractères) | - |
Valeurs possibles pour typeFormation (TypeFormationEnum[]) :
Bachelor Universitaire de Technologie (BUT): BUTBrevet de Technicien Supérieur (BTS): BTSCertificat de Spécialisation (CS): CSClasse Préparatoire aux Grandes Ecoles (CPGE): CPGEDiplôme d'Etudes Universitaires Scientifiques et Techniques (DEUST): DEUSTEcole post-bac: École post-bacFormation Complémentaire d'Initiative Locale (FCIL): FCILInsertion: InsertionLicence: LicenceAutre: Autre
Relations :
etablissement: Établissement proposant cette formation
ContactsEquipePedagogique
Table : contacts-equipe-pedagogique
Description : Contacts de l'équipe pédagogique
| Champ | Type | Description | Champ BigQuery |
|---|---|---|---|
id |
number |
Identifiant unique (hérité de BaseEntity) | - |
email |
string |
Adresse email (max 200 caractères) | - |
UserImpact
Table : user-impact
Description : Représente les avis/impacts des utilisateurs sur les pistes et articles
| Champ | Type | Description | Champ BigQuery |
|---|---|---|---|
id |
number |
Identifiant unique (hérité de BaseEntity) | - |
popupType |
enum |
Type de popup pour laquelle l'avis a été donné | - |
comprisPiste |
string |
Avis sur la compréhension de la piste | - |
suivrePiste |
string |
Avis sur le suivi de la piste | - |
connaitrePiste |
string |
Connaissance de cette formation | - |
conseilsUtiles |
string |
Avis sur l'utilité des conseils | - |
mieuxPrepares |
string |
Avis sur la préparation | - |
informationsUtiles |
string |
Avis sur l'utilité des informations | - |
ouDemander |
string |
Avis sur où demander | - |
accordClassement |
string |
Accord avec le classement | - |
pisteId |
number |
ID de la piste associée (si applicable) | - |
articleId |
number |
ID de l'article associé (si applicable) | - |
Valeurs possibles pour popupType (PopupType) :
avis_piste: Avis sur une pisteavis_article_orientation: Avis sur un article d'orientationavis_article_vie: Avis sur un article de vie étudianteavis_reco_pistes: Avis sur les recommandations de pistes
Relations :
user: Utilisateur associépiste: Piste associée (si applicable)article: Article associé (si applicable)