# coding: utf8
from sqlalchemy import ForeignKey
from utils_flask_sqla.serializers import serializable
from pypn_habref_api.env import db as DB
@serializable
[docs]
class BibHabrefTypoRel(DB.Model):
[docs]
__tablename__ = "bib_habref_typo_rel"
[docs]
__table_args__ = {"schema": "ref_habitats"}
[docs]
cd_type_rel = DB.Column(DB.Integer, primary_key=True)
[docs]
lb_type_rel = DB.Column(DB.Unicode)
[docs]
lb_rel = DB.Column(DB.Unicode)
[docs]
corresp_hab = DB.Column(DB.Boolean)
[docs]
corresp_esp = DB.Column(DB.Boolean)
[docs]
corresp_syn = DB.Column(DB.Boolean)
@serializable
[docs]
class CorespHab(DB.Model):
[docs]
__tablename__ = "habref_corresp_hab"
[docs]
__table_args__ = {"schema": "ref_habitats"}
[docs]
cd_corresp_hab = DB.Column(DB.Integer, primary_key=True)
[docs]
cd_hab_entre = DB.Column(DB.Integer, ForeignKey("ref_habitats.habref.cd_hab"))
[docs]
cd_hab_sortie = DB.Column(DB.Integer)
[docs]
cd_type_relation = DB.Column(
DB.Integer, ForeignKey("ref_habitats.bib_habref_typo_rel.cd_type_rel")
)
[docs]
lb_condition = DB.Column(DB.Unicode)
[docs]
lb_remarques = DB.Column(DB.Unicode)
[docs]
validite = DB.Column(DB.Boolean)
[docs]
cd_typo_entre = DB.Column(DB.Integer)
[docs]
cd_typo_sortie = DB.Column(DB.Integer)
[docs]
date_crea = DB.Column(DB.Integer)
[docs]
diffusion = DB.Column(DB.Boolean)
[docs]
type_rel = DB.relationship("BibHabrefTypoRel", lazy="select")
@serializable
[docs]
class TypoRef(DB.Model):
[docs]
__tablename__ = "typoref"
[docs]
__table_args__ = {"schema": "ref_habitats"}
[docs]
cd_typo = DB.Column(DB.Integer, primary_key=True)
[docs]
cd_table = DB.Column(DB.Unicode)
[docs]
lb_nom_typo = DB.Column(DB.Unicode)
[docs]
nom_jeu_donnees = DB.Column(DB.Unicode)
[docs]
date_creation = DB.Column(DB.Unicode)
[docs]
date_mise_jour_table = DB.Column(DB.Unicode)
[docs]
auteur_typo = DB.Column(DB.Unicode)
[docs]
auteur_table = DB.Column(DB.Unicode)
[docs]
territoire = DB.Column(DB.Unicode)
[docs]
organisme = DB.Column(DB.Unicode)
[docs]
langue = DB.Column(DB.Unicode)
[docs]
presentation = DB.Column(DB.Unicode)
[docs]
description = DB.Column(DB.Unicode)
[docs]
origine = DB.Column(DB.Unicode)
[docs]
ref_biblio = DB.Column(DB.Unicode)
[docs]
mots_cles = DB.Column(DB.Unicode)
[docs]
referencement = DB.Column(DB.Unicode)
[docs]
diffusion = DB.Column(DB.Unicode)
[docs]
derniere_modif = DB.Column(DB.Unicode)
[docs]
type_table = DB.Column(DB.Unicode)
[docs]
cd_typo_entre = DB.Column(DB.Integer)
[docs]
cd_typo_sortie = DB.Column(DB.Integer)
[docs]
niveau_inpn = DB.Column(DB.Integer)
[docs]
habitats = DB.relationship("Habref", back_populates="typo")
[docs]
cor_list_habitat = DB.Table(
"cor_list_habitat",
DB.Column("id_cor_list", DB.Integer, primary_key=True),
DB.Column("id_list", DB.Integer, ForeignKey("ref_habitats.bib_list_habitat.id_list")),
DB.Column("cd_hab", DB.Integer, ForeignKey("ref_habitats.habref.cd_hab")),
schema="ref_habitats",
)
@serializable
[docs]
class Habref(DB.Model):
[docs]
__tablename__ = "habref"
[docs]
__table_args__ = {"schema": "ref_habitats"}
[docs]
cd_hab = DB.Column(DB.Integer, primary_key=True)
[docs]
fg_validite = DB.Column(DB.Unicode)
[docs]
cd_typo = DB.Column(DB.Integer, ForeignKey("ref_habitats.typoref.cd_typo"))
[docs]
lb_code = DB.Column(DB.Unicode)
[docs]
lb_hab_fr = DB.Column(DB.Unicode)
[docs]
lb_hab_fr_complet = DB.Column(DB.Unicode)
[docs]
lb_hab_en = DB.Column(DB.Unicode)
[docs]
lb_auteur = DB.Column(DB.Unicode)
[docs]
niveau = DB.Column(DB.Integer)
[docs]
lb_niveau = DB.Column(DB.Unicode)
[docs]
cd_hab_sup = DB.Column(DB.Integer)
[docs]
path_cd_hab = DB.Column(DB.Unicode)
[docs]
france = DB.Column(DB.Unicode)
[docs]
lb_description = DB.Column(DB.Unicode)
[docs]
typo = DB.relationship("TypoRef", lazy="joined", back_populates="habitats")
[docs]
correspondances = DB.relationship("CorespHab", lazy="select")
[docs]
lists = DB.relationship(
"BibListHabitat", secondary=cor_list_habitat, back_populates="habitats"
)
@serializable
[docs]
class BibListHabitat(DB.Model):
[docs]
__tablename__ = "bib_list_habitat"
[docs]
__table_args__ = {"schema": "ref_habitats"}
[docs]
id_list = DB.Column(DB.Integer, primary_key=True)
[docs]
list_name = DB.Column(DB.Unicode)
[docs]
habitats = DB.relationship("Habref", secondary=cor_list_habitat, back_populates="lists")
@serializable
[docs]
class AutoCompleteHabitat(DB.Model):
[docs]
__tablename__ = "autocomplete_habitat"
[docs]
__table_args__ = {"schema": "ref_habitats"}
[docs]
cd_hab = DB.Column(DB.Integer, primary_key=True)
[docs]
cd_typo = DB.Column(DB.Integer)
[docs]
lb_code = DB.Column(DB.Unicode)
[docs]
lb_nom_typo = DB.Column(DB.Unicode)
[docs]
search_name = DB.Column(DB.Unicode)
[docs]
lists = DB.relationship(
BibListHabitat,
primaryjoin=(cor_list_habitat.c.cd_hab == cd_hab),
secondary=cor_list_habitat,
viewonly=True,
)