Files
BoursePython/app/models.py
T

115 lines
4.9 KiB
Python
Raw Normal View History

2026-08-03 10:02:12 +02:00
from datetime import datetime
from app import db
class Login(db.Model):
__tablename__ = "login"
id = db.Column(db.Integer, primary_key=True)
login = db.Column(db.String(50), nullable=False, unique=True)
nom = db.Column(db.String(100), nullable=False)
prenom = db.Column(db.String(100), nullable=False)
mail = db.Column(db.String(255), nullable=False, unique=True)
pass_ = db.Column("pass", db.String(255), nullable=False)
actif = db.Column(db.Boolean, default=True)
creer_le = db.Column(db.DateTime, default=datetime.utcnow)
modifie_le = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
reset_token = db.Column(db.String(255), nullable=True)
reset_token_created_at = db.Column(db.DateTime, nullable=True)
class Action(db.Model):
__tablename__ = "actions"
id = db.Column(db.Integer, primary_key=True)
isin = db.Column(db.String(50), nullable=False, unique=True)
ticker = db.Column(db.String(50))
company_name = db.Column(db.String(255))
exchange = db.Column(db.String(50), nullable=False)
pays = db.Column(db.String(50), nullable=False)
currency = db.Column(db.String(10), nullable=False)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
class Societe(db.Model):
__tablename__ = "societe"
id = db.Column(db.Integer, primary_key=True)
nom = db.Column(db.String(60), nullable=False)
forme = db.Column(db.String(10), nullable=False)
capital = db.Column(db.Integer, nullable=False)
siren = db.Column(db.String(20), nullable=False)
siret = db.Column(db.String(20), nullable=False)
rcs = db.Column(db.String(50), nullable=False)
tva = db.Column(db.String(50), nullable=False)
naf = db.Column(db.String(10), nullable=False)
tel = db.Column(db.String(30), nullable=False)
web = db.Column(db.String(100), nullable=False)
mail = db.Column(db.String(100), nullable=False)
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
comptes = db.relationship("Compte", backref="societe", lazy=True)
class Compte(db.Model):
__tablename__ = "compte"
id = db.Column(db.Integer, primary_key=True)
id_societe = db.Column(db.Integer, db.ForeignKey("societe.id"), nullable=False)
date_operation = db.Column(db.Date, nullable=False)
debit = db.Column(db.Numeric(15, 2), default=0)
credit = db.Column(db.Numeric(15, 2), default=0)
libelle = db.Column(db.Text)
source = db.Column(db.Enum("manuel", "ordre"), nullable=False, default="manuel")
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
class Ordre(db.Model):
__tablename__ = "ordre"
id = db.Column(db.Integer, primary_key=True)
id_societe = db.Column(db.Integer, db.ForeignKey("societe.id"), nullable=False)
isin = db.Column(db.String(50), db.ForeignKey("actions.isin"), nullable=False)
plus_value = db.Column(db.Numeric(19, 4), nullable=False, default=0)
date_plus_value = db.Column(db.Date, nullable=True)
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
pieds = db.relationship("OrdrePied", backref="ordre", lazy=True, cascade="all, delete-orphan")
class OrdrePied(db.Model):
__tablename__ = "ordre_pied"
id = db.Column(db.Integer, primary_key=True)
id_entete = db.Column(db.Integer, db.ForeignKey("ordre.id", ondelete="CASCADE", onupdate="CASCADE"), nullable=False)
date_op = db.Column(db.Date, nullable=False)
quantite = db.Column(db.Integer, nullable=False)
prix_brut = db.Column(db.Numeric(19, 4))
frais_broker = db.Column(db.Numeric(19, 4))
frais_etat = db.Column(db.Numeric(19, 4))
frais_autre = db.Column(db.Numeric(19, 4))
sens = db.Column(db.Enum("achat", "vente"), nullable=False)
position = db.Column(db.Enum("long", "short"), nullable=False)
etat = db.Column(db.Enum("actif", "soldé", "annulé"), nullable=False)
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
2026-08-03 15:20:08 +02:00
class Historique(db.Model):
__tablename__ = "historique"
id = db.Column(db.Integer, primary_key=True)
isin = db.Column(db.String(50), db.ForeignKey("actions.isin"), nullable=False)
date = db.Column(db.Date, nullable=False)
price = db.Column(db.Numeric(19, 4))
open_ = db.Column("open", db.Numeric(19, 4))
hight = db.Column(db.Numeric(19, 4))
low = db.Column(db.Numeric(19, 4))
vol = db.Column(db.Integer)
change = db.Column(db.Numeric(19, 4))
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
created_at = db.Column(db.DateTime, default=datetime.utcnow)