Schemas
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 (relationManyToOne
).permAlgorithmes
: Liste des permissions associées à l'algorithme (relationOneToMany
).
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.