diff --git a/depsec_db/models.py b/depsec_db/models.py index 2e1aad7..562dfe2 100644 --- a/depsec_db/models.py +++ b/depsec_db/models.py @@ -9,6 +9,15 @@ from sqlalchemy import func as sa_func from depsec_db.extensions import db +class Project(db.Model): + """Modèle d'un projet.""" + __tablename__ = 'projects' + id = db.Column(db.Integer, primary_key=True, autoincrement=True) + """Clé étrangère vers l'id de la table User""" + auteur_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) + titre = db.Column(db.String, nullable=False) + status = db.Column(db.String, nullable=False) + path = db.Column(db.String, nullable=False) class User(db.Model): """Modèle utilisateur principal pour l'authentification.""" @@ -38,6 +47,8 @@ class User(db.Model): onupdate=sa_func.now(), # pylint: disable=not-callable nullable=False ) + """Relation One-To-Many avec la table Project qui utilise l'id de User""" + projects = db.relationship('Project', backref='user', lazy=True) def set_password(self, password: str) -> None: """Hash et définit le mot de passe de l'utilisateur.""" self.password_hash = generate_password_hash(password) @@ -82,14 +93,6 @@ class TrivyReport(db.Model): results = db.Column(db.JSON, nullable=True) -class Project(db.Model): - """ - Modèle d'un projet. - """ - id = db.Column(db.Integer, primary_key=True, autoincrement=True) - name = db.Column(db.String(255), nullable=False) - version = db.Column(db.String(50), nullable=False) - class SBOM(db.Model): """ Modèle d'un SBOM.