ajout des classes pour l'enregistrement en base de données

This commit is contained in:
2024-11-08 17:09:40 +01:00
parent 42275cf0c1
commit d24a2f85f0

View File

@@ -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)