#!/usr/bin/python # -*- coding: UTF-8 -*- """ Authors : Jean-Damien Généro Affiliation : French National Center for Scientific Research (CNRS) Assigned at the Centre de recherches historiques (CRH, UMR 8558) Date : 2022-10-11 Update : """ import re import typing as t import peewee from flask import url_for from playhouse.sqlite_ext import FTS5Model, RowIDField, SearchField from app.app import db class BaseModel(peewee.Model): class Meta: database = db # db = SqliteDatabase('actes_princiers.db') # from app.app import db class Institution(BaseModel): id_institution = peewee.AutoField() full_label = peewee.TextField() inst_label = peewee.TextField() art_inst = peewee.TextField() inst_place = peewee.TextField() inst_rank = peewee.TextField() inst_type = peewee.TextField() class Meta: database = db db_table = 'Institution' class State(BaseModel): id_state = peewee.AutoField() state_label = peewee.TextField() class Meta: database = db db_table = 'State' class Production_place(BaseModel): id_place = peewee.AutoField() placename = peewee.TextField() class Meta: database = db db_table = 'Production_place' class Diplo_type(BaseModel): id_diplo_type = peewee.AutoField() diplo_label = peewee.TextField() class Meta: database = db db_table = 'Diplo_type' class Document(BaseModel): id_document = peewee.AutoField() inst_doc = peewee.ForeignKeyField(Institution, backref='documents') collection_doc = peewee.TextField() class Meta: database = db db_table = 'Document' class Acte(BaseModel): id_acte = peewee.AutoField() numb_acte = peewee.TextField() date_time = peewee.TextField() # YYYY-MM-DD date = peewee.TextField() # verbose prod_place_acte = peewee.ForeignKeyField(Production_place, backref='actes') analysis = peewee.TextField() doc_acte = peewee.ForeignKeyField(Document, backref='actes') ref_acte = peewee.TextField() # cote state_doc = peewee.ForeignKeyField(State, backref='actes') diplo_type_acte = peewee.ForeignKeyField(Diplo_type, backref='actes') class Meta: database = db db_table = 'Acte' class Individual(BaseModel): id_indiv = peewee.AutoField() name_indiv = peewee.TextField() role_indiv = peewee.TextField() class Meta: database = db db_table = 'Individual' class Duke(BaseModel): id_duke = peewee.AutoField() house = peewee.TextField() indiv_duke = peewee.ForeignKeyField(Individual, backref='dukes') birth = peewee.TextField() reign = peewee.TextField() death = peewee.TextField() class Meta: database = db db_table = 'Duke' class Produced_by(BaseModel): id_produced_by = peewee.AutoField() produced_by_acte = peewee.ForeignKeyField(Acte, backref='produced_bys') produced_by_prince = peewee.ForeignKeyField(Duke, backref='produced_bys') class Meta: database = db db_table = 'Produced_by'