99 lines
4.3 KiB
Python
99 lines
4.3 KiB
Python
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)
|