diff --git a/backend/src/drawing/models.py b/backend/src/drawing/models.py index 51c7990..af8865b 100644 --- a/backend/src/drawing/models.py +++ b/backend/src/drawing/models.py @@ -11,7 +11,6 @@ import logging as log import json import enum -from werkzeug.security import generate_password_hash, check_password_hash from werkzeug.exceptions import HTTPException, RequestEntityTooLarge from werkzeug.utils import secure_filename @@ -22,28 +21,40 @@ from src.db import mydb as db ######################################################### # Class et Methods # -class Role(enum.Enum): - Administrateur = "Administrateur" - Coach = "Coach" +class Type_Elem(enum.Enum): + ''' Type d'element + ''' + Joueur = "JOUEUR" + Ballon = "BALLON" + Plot = "PLOT" + Piquet = "PIQUET" + +class Type_Design(enum.Enum): + ''' Type de design + ''' + Circle = "CIRCLE" + Rectangle = "RECTANGLE" class Exercice(db.Model): + ''' Exercice Model + ''' __tablename__ = 'Exercices' ExecID = db.Column(db.Integer, primary_key=True) Nom = db.Column(db.String(32), nullable=False, default="") Description = db.Column(db.Text, nullable=False, default="") - NbJoueurs = db.Column(db.Integer, nullable=False) - NbBallons = db.Column(db.Integer, nullable=False) - NbPlots = db.Column(db.Integer, nullable=False) - NbPiquets = db.Column(db.Integer, nullable=False) + NbJoueurs = db.Column(db.Integer, nullable=False, default=0) + NbBallons = db.Column(db.Integer, nullable=False, default=0) + NbPlots = db.Column(db.Integer, nullable=False, default=0) + NbPiquets = db.Column(db.Integer, nullable=False, default=0) def __init__(self, - Nom:str='', - Description:str='', - NbJoueurs:int=0, - NbBallons:int=0, - NbPlots:int=0, - NbPiquets:int=0) -> None: + Nom:str = '', + Description:str = '', + NbJoueurs:int = 0, + NbBallons:int = 0, + NbPlots:int = 0, + NbPiquets:int = 0) -> None: ''' constructor ''' self.Nom = Nom self.Description = Description @@ -53,13 +64,79 @@ class Exercice(db.Model): self.NbPiquets = NbPiquets def as_dict(self): - ''' User as dictionnary ''' + ''' Exercice as dictionnary ''' + result = {} + for c in self.__table__.columns: + result[c.name] = getattr(self, c.name) + return result + +class Element(db.Model): + ''' Element Model + ''' + __tablename__ = 'Etapes' + + ElemID = db.Column(db.Integer, primary_key=True) + Type = db.Column(db.String(16), nullable=False, default=Type_Elem.Joueur) + Moving = db.Column(db.Boolean(), nullable=False, default=False) + Id = db.Column(db.Integer, nullable=False) + ExecID = db.Column(db.Integer, db.ForeignKey('exercice.ExecID'), nullable=False) + + def __init__(self, + Type:Type_Elem = Type_Elem.Joueur, + Moving:Boolean = False, + Id:int = 0, + ExecID:int = 0) -> None: + ''' constructor ''' + self.Type = Type + self.Moving = Moving + self.Id = Id + self.ExecID = ExecID + + def as_dict(self): + ''' Element as dictionnary ''' + result = {} + for c in self.__table__.columns: + result[c.name] = getattr(self, c.name) + return result + +class Design(db.Model): + ''' Design Model + ''' + __tablename__ = 'Designs' + + DesignID = db.Column(db.Integer, primary_key=True) + Type = db.Column(db.String(16), nullable=False, default=Type_Design.Circle) + X = db.Column(db.Float, nullable=False, default=0.0) + Y = db.Column(db.Float, nullable=False, default=0.0) + Radius = db.Column(db.Integer, nullable=False, default=0) + Width = db.Column(db.Integer, nullable=False, default=0) + Height = db.Column(db.Integer, nullable=False, default=0) + ElemID = db.Column(db.Integer, db.ForeignKey('element.ElemID'), nullable=False) + + def __init__(self, + Type:Type_Design = Type_Design.Circle, + X:Float = 0.0, + Y:Float = 0.0, + Radius:int = 0, + Width:int = 0, + Height:int = 0, + ElemID:int = 0) -> None: + ''' constructor ''' + self.Type = Type + self.Moving = Moving + self.Id = Id + self.ExecID = ExecID + + def as_dict(self): + ''' Design as dictionnary ''' result = {} for c in self.__table__.columns: result[c.name] = getattr(self, c.name) return result class Etape(db.Model): + ''' Etape Model + ''' __tablename__ = 'Etapes' EtapeID = db.Column(db.Integer, primary_key=True) @@ -70,17 +147,17 @@ class Etape(db.Model): Duration = db.Column(db.Integer, nullable=False) StartTime = db.Column(db.Integer, nullable=False) EndTime = db.Column(db.Integer, nullable=False) - ElemID = db.Column(db.Integer, db.ForeignKey('utilisateur.userId'), nullable=False) + ElemID = db.Column(db.Integer, db.ForeignKey('Element.ElemID'), nullable=False) def __init__(self, - StartX:Float=0.0, - StartY:Float=0.0, - EndX:Float=0.0, - EndY:Float=0.0, - Duration:int=0, - StartTime:int=0, - EndTime:int=0, - ElemID:int=0) -> None: + StartX:Float = 0.0, + StartY:Float = 0.0, + EndX:Float = 0.0, + EndY:Float = 0.0, + Duration:int = 0, + StartTime:int = 0, + EndTime:int = 0, + ElemID:int = 0) -> None: ''' constructor ''' self.StartX = StartX self.StartY = StartY @@ -92,7 +169,7 @@ class Etape(db.Model): self.ElemID = ElemID def as_dict(self): - ''' User as dictionnary ''' + ''' Etape as dictionnary ''' result = {} for c in self.__table__.columns: result[c.name] = getattr(self, c.name)