-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
131 lines (108 loc) · 5.83 KB
/
models.py
File metadata and controls
131 lines (108 loc) · 5.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.orm import DeclarativeBase
from datetime import datetime
class Base(DeclarativeBase):
pass
db = SQLAlchemy(model_class=Base)
sponsoriser_association = db.Table('sponsoriser',
db.Column('CodeClub', db.Integer, db.ForeignKey('club.CodeClub'), primary_key=True),
db.Column('CodeSponsor', db.Integer, db.ForeignKey('sponsor.CodeSponsor'), primary_key=True)
)
financer_association = db.Table('financer',
db.Column('CodeSponsor', db.Integer, db.ForeignKey('sponsor.CodeSponsor'), primary_key=True),
db.Column('CodeEvent', db.Integer, db.ForeignKey('evenement.CodeEvent'), primary_key=True)
)
animer_association = db.Table('animer',
db.Column('CodeIntervenant', db.Integer, db.ForeignKey('intervenant.CodeIntervenant'), primary_key=True),
db.Column('CodeActiviteE', db.Integer, db.ForeignKey('activite_ev.CodeActiviteE'), primary_key=True)
)
class Etudiant(db.Model):
__tablename__ = 'etudiant'
CodeEtudiant = db.Column(db.Integer, primary_key=True)
Nom = db.Column(db.String(120), nullable=False)
Prenom = db.Column(db.String(120), nullable=False)
Filiere = db.Column(db.String(100), nullable=False)
DateNaissance = db.Column(db.Date)
Email = db.Column(db.String(120), unique=True, nullable=False)
MotDePasse = db.Column(db.String(255), nullable=False)
Telephone = db.Column(db.String(120), nullable=False)
inscriptions = db.relationship("Inscription", back_populates="etudiant")
participations = db.relationship("Participation", back_populates="etudiant")
class Club(db.Model):
__tablename__ = 'club'
CodeClub = db.Column(db.Integer, primary_key=True)
NomClub = db.Column(db.String(120), nullable=False)
TypeClub = db.Column(db.String(120))
DateCreation = db.Column(db.Date, default=datetime.utcnow().date())
DescriptionC = db.Column(db.Text)
inscriptions = db.relationship("Inscription", back_populates="club")
activites = db.relationship("ActiviteC", back_populates="club")
sponsors = db.relationship("Sponsor", secondary=sponsoriser_association, back_populates="clubs") # List
class Inscription(db.Model):
__tablename__ = 'inscrir'
CodeClub = db.Column(db.Integer, db.ForeignKey('club.CodeClub'), primary_key=True)
CodeEtudiant = db.Column(db.Integer, db.ForeignKey('etudiant.CodeEtudiant'), primary_key=True)
TypeMembre = db.Column(db.String(50), default="Membre")
Statut = db.Column(db.String(20), default="En attente")
MessageAdmin = db.Column(db.Text, nullable=True)
club = db.relationship("Club", back_populates="inscriptions")
etudiant = db.relationship("Etudiant", back_populates="inscriptions")
class ActiviteC(db.Model):
__tablename__ = 'activite_c'
CodeActiviteC = db.Column(db.Integer, primary_key=True)
IntituleC = db.Column(db.String(100))
DateActiviteC = db.Column(db.Date, unique=True)
Duree = db.Column(db.String(50))
Lieu = db.Column(db.String(100))
Budget = db.Column(db.Float, default=0.0)
Rating = db.Column(db.Integer, default=0)
CodeClub = db.Column(db.Integer, db.ForeignKey('club.CodeClub'), nullable=False)
club = db.relationship("Club", back_populates="activites")
class Evenement(db.Model):
__tablename__ = 'evenement'
CodeEvent = db.Column(db.Integer, primary_key=True)
NomEvent = db.Column(db.String(100), nullable=False)
Filiere = db.Column(db.String(100))
Theme = db.Column(db.String(100))
DateDebut = db.Column(db.Date, unique=True)
DateFin = db.Column(db.Date, unique=True)
LieuE = db.Column(db.String(100))
DescriptionE = db.Column(db.Text)
participants = db.relationship("Participation", back_populates="evenement")
activites_ev = db.relationship("ActiviteEV", back_populates="evenement")
sponsors = db.relationship("Sponsor", secondary=financer_association, back_populates="evenements") # List
class Participation(db.Model):
__tablename__ = 'participer'
CodeEtudiant = db.Column(db.Integer, db.ForeignKey('etudiant.CodeEtudiant'), primary_key=True)
CodeEvent = db.Column(db.Integer, db.ForeignKey('evenement.CodeEvent'), primary_key=True)
TypeParticipant = db.Column(db.String(50), default="Participant")
Statut = db.Column(db.String(20), default="En attente")
etudiant = db.relationship("Etudiant", back_populates="participations")
evenement = db.relationship("Evenement", back_populates="participants")
class ActiviteEV(db.Model):
__tablename__ = 'activite_ev'
CodeActiviteE = db.Column(db.Integer, primary_key=True)
IntituleE = db.Column(db.String(100))
TypeActiviteE = db.Column(db.String(50))
DateActiviteE = db.Column(db.DateTime, unique=True)
Duree = db.Column(db.String(50))
CodeEvent = db.Column(db.Integer, db.ForeignKey('evenement.CodeEvent'), nullable=False)
evenement = db.relationship("Evenement", back_populates="activites_ev")
intervenants = db.relationship("Intervenant", secondary=animer_association, back_populates="activites") # List
class Sponsor(db.Model):
__tablename__ = 'sponsor'
CodeSponsor = db.Column(db.Integer, primary_key=True)
NomSponsor = db.Column(db.String(100), nullable=False)
TypeSponsor = db.Column(db.String(50))
Contribution = db.Column(db.Float)
clubs = db.relationship("Club", secondary=sponsoriser_association, back_populates="sponsors") # List
evenements = db.relationship("Evenement", secondary=financer_association, back_populates="sponsors") # List
class Intervenant(db.Model):
__tablename__ = 'intervenant'
CodeIntervenant = db.Column(db.Integer, primary_key=True)
NomIN = db.Column(db.String(80))
PrenomIN = db.Column(db.String(80))
Specialite = db.Column(db.String(100))
EmailIN = db.Column(db.String(120))
TelephoneIN = db.Column(db.String(20))
activites = db.relationship("ActiviteEV", secondary=animer_association, back_populates="intervenants") # List