Aller au contenu principal

Schemas

Chargement...

Le dossier schemas/ contient les modèles de données utilisés dans le backend de l'application AlgoForge. Ces modèles définissent la structure des entités de la base de données et leurs relations. Ils sont implémentés à l'aide de TypeORM, un ORM (Object-Relational Mapping) pour TypeScript et JavaScript.


1. Algorithme.schema.ts

Description

Ce fichier définit le modèle de données pour les algorithmes. Un algorithme représente une unité de travail dans l'application, pouvant être associée à un dossier et à des permissions.

Attributs

  • id : Identifiant unique de l'algorithme (clé primaire).
  • nom : Nom de l'algorithme (par défaut : "Nouvel algorithme").
  • dateCreation : Date de création de l'algorithme (timestamp).
  • dateModification : Date de dernière modification de l'algorithme (timestamp).
  • dossier : Référence au dossier contenant l'algorithme (relation ManyToOne).
  • permAlgorithmes : Liste des permissions associées à l'algorithme (relation OneToMany).

Relations

  • Dossier : Un algorithme peut être contenu dans un dossier.
  • PermAlgorithme : Un algorithme peut avoir plusieurs permissions associées.

2. Utilisateur.schema.ts

Description

Ce fichier définit le modèle de données pour les utilisateurs. Un utilisateur représente une personne utilisant l'application.

Attributs

  • id : Identifiant unique de l'utilisateur (clé primaire).
  • adresseMail : Adresse email de l'utilisateur.
  • pseudo : Pseudo de l'utilisateur.
  • mdpHash : Mot de passe hashé de l'utilisateur.
  • dateInscription : Date d'inscription de l'utilisateur (timestamp).
  • theme : Identifiant du thème de l'utilisateur (par défaut : 0).
  • urlPfp : URL de la photo de profil de l'utilisateur.
  • isVerified : Indique si l'utilisateur a vérifié son email.

Relations

  • Token : Un utilisateur peut avoir plusieurs tokens d'authentification.
  • PermDossier : Un utilisateur peut avoir des permissions sur plusieurs dossiers.
  • PermAlgorithme : Un utilisateur peut avoir des permissions sur plusieurs algorithmes.

3. Token.schema.ts

Description

Ce fichier définit le modèle de données pour les tokens d'authentification. Un token est utilisé pour authentifier un utilisateur dans l'application.

Attributs

  • token : Valeur unique du token (clé primaire).
  • dateCreation : Date de création du token (timestamp).
  • dateExpiration : Date d'expiration du token (timestamp).

Relations

  • Utilisateur : Un token est associé à un utilisateur.

4. PermDossier.schema.ts

Description

Ce fichier définit le modèle de données pour les permissions sur les dossiers. Une permission permet à un utilisateur d'effectuer des actions spécifiques sur un dossier.

Attributs

  • idUtilisateur : Identifiant de l'utilisateur ayant la permission (clé primaire).
  • idDossier : Identifiant du dossier sur lequel la permission s'applique (clé primaire).
  • droits : Droits accordés à l'utilisateur (par exemple : lecture, écriture).

Relations

  • Utilisateur : Une permission est associée à un utilisateur.
  • Dossier : Une permission est associée à un dossier.

5. PermAlgorithme.schema.ts

Description

Ce fichier définit le modèle de données pour les permissions sur les algorithmes. Une permission permet à un utilisateur d'effectuer des actions spécifiques sur un algorithme.

Attributs

  • idUtilisateur : Identifiant de l'utilisateur ayant la permission (clé primaire).
  • idAlgorithme : Identifiant de l'algorithme sur lequel la permission s'applique (clé primaire).
  • droits : Droits accordés à l'utilisateur (par exemple : lecture, écriture).

Relations

  • Utilisateur : Une permission est associée à un utilisateur.
  • Algorithme : Une permission est associée à un algorithme.

6. Dossier.schema.ts

Description

Ce fichier définit le modèle de données pour les dossiers. Un dossier est une structure hiérarchique qui peut contenir des algorithmes et être associé à des permissions.

Attributs

  • id : Identifiant unique du dossier (clé primaire).
  • nom : Nom du dossier (par défaut : "Nouveau dossier").
  • idParent : Identifiant du dossier parent (si null, le dossier est à la racine).
  • dateCreation : Date de création du dossier (timestamp).
  • dateModification : Date de dernière modification du dossier (timestamp).

Relations

  • Dossier : Un dossier peut avoir un dossier parent.
  • Algorithme : Un dossier peut contenir plusieurs algorithmes.
  • PermDossier : Un dossier peut avoir plusieurs permissions associées.