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 json
import enum import enum
from werkzeug.security import generate_password_hash, check_password_hash
from werkzeug.exceptions import HTTPException, RequestEntityTooLarge from werkzeug.exceptions import HTTPException, RequestEntityTooLarge
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
@@ -22,20 +21,32 @@ from src.db import mydb as db
######################################################### #########################################################
# Class et Methods # # Class et Methods #
class Role(enum.Enum): class Type_Elem(enum.Enum):
Administrateur = "Administrateur" ''' Type d'element
Coach = "Coach" '''
Joueur = "JOUEUR"
Ballon = "BALLON"
Plot = "PLOT"
Piquet = "PIQUET"
class Type_Design(enum.Enum):
''' Type de design
'''
Circle = "CIRCLE"
Rectangle = "RECTANGLE"
class Exercice(db.Model): class Exercice(db.Model):
''' Exercice Model
'''
__tablename__ = 'Exercices' __tablename__ = 'Exercices'
ExecID = db.Column(db.Integer, primary_key=True) ExecID = db.Column(db.Integer, primary_key=True)
Nom = db.Column(db.String(32), nullable=False, default="") Nom = db.Column(db.String(32), nullable=False, default="")
Description = db.Column(db.Text, nullable=False, default="") Description = db.Column(db.Text, nullable=False, default="")
NbJoueurs = db.Column(db.Integer, nullable=False) NbJoueurs = db.Column(db.Integer, nullable=False, default=0)
NbBallons = db.Column(db.Integer, nullable=False) NbBallons = db.Column(db.Integer, nullable=False, default=0)
NbPlots = db.Column(db.Integer, nullable=False) NbPlots = db.Column(db.Integer, nullable=False, default=0)
NbPiquets = db.Column(db.Integer, nullable=False) NbPiquets = db.Column(db.Integer, nullable=False, default=0)
def __init__(self, def __init__(self,
Nom:str = '', Nom:str = '',
@@ -53,13 +64,79 @@ class Exercice(db.Model):
self.NbPiquets = NbPiquets self.NbPiquets = NbPiquets
def as_dict(self): 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 = {} result = {}
for c in self.__table__.columns: for c in self.__table__.columns:
result[c.name] = getattr(self, c.name) result[c.name] = getattr(self, c.name)
return result return result
class Etape(db.Model): class Etape(db.Model):
''' Etape Model
'''
__tablename__ = 'Etapes' __tablename__ = 'Etapes'
EtapeID = db.Column(db.Integer, primary_key=True) EtapeID = db.Column(db.Integer, primary_key=True)
@@ -70,7 +147,7 @@ class Etape(db.Model):
Duration = db.Column(db.Integer, nullable=False) Duration = db.Column(db.Integer, nullable=False)
StartTime = db.Column(db.Integer, nullable=False) StartTime = db.Column(db.Integer, nullable=False)
EndTime = 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, def __init__(self,
StartX:Float = 0.0, StartX:Float = 0.0,
@@ -92,7 +169,7 @@ class Etape(db.Model):
self.ElemID = ElemID self.ElemID = ElemID
def as_dict(self): def as_dict(self):
''' User as dictionnary ''' ''' Etape as dictionnary '''
result = {} result = {}
for c in self.__table__.columns: for c in self.__table__.columns:
result[c.name] = getattr(self, c.name) result[c.name] = getattr(self, c.name)