class ReferenceName(db.Entity): id = p.PrimaryKey(int, auto=True) name = p.Required(str, unique=True) sort_order = p.Required(int) blood_test_entries = p.Set('BloodTestEntry')
class Words(db.Entity): __table__ = "words" words = orm.PrimaryKey(str) count = orm.Required(int) date = orm.Required(datetime.datetime)
class AttackAnimKits(db.Entity): id = orm.PrimaryKey(int) item_subclass_id = orm.Required(int) anim_type = orm.Required('AttackAnimTypes', reverse='attack_anim_kits_backlink') anim_frequency = orm.Required(int) which_hand = orm.Required(int)
class Permission(db.Entity): name = orm.Required(str) user = orm.Required(User) resource = orm.Required(Resource) orm.PrimaryKey(name, user, resource)
class Balance(db.Entity, DictConversionMixin): account = orm.PrimaryKey(Account) amount = orm.Required(Decimal, precision=16, scale=2) date_eod = orm.Required(Date)
class User(db.Entity): id = orm.PrimaryKey(int, auto=True) name = orm.Optional(str) salutation = orm.Optional(str)
class Person(db.Entity): id = orm.PrimaryKey(int, auto=True) name = orm.Required(str) orm.composite_key(id, name)
class Employe(db.Entity): id_employe = orm.PrimaryKey(int, auto=True) id_dossier = orm.Required(Dossier) id_authentification = orm.Required(AuthentificationEmploye)
class AuthentificationEmploye(db.Entity): id_authentification = orm.PrimaryKey(int, auto=True) matricule = orm.Required(str, unique=True) mot_de_passe = orm.Required(str) employe = orm.Optional('Employe')
class Localisation(db.Entity): id_localisation = orm.PrimaryKey(int, auto=True) ville = orm.Required(str) province = orm.Required(str) adresses = orm.Set('Adresse')
class Adresse(db.Entity): id_adresse = orm.PrimaryKey(int, auto=True) id_localisation = orm.Required(Localisation) adresse_civique = orm.Required(str) code_postal = orm.Required(str) dossier = orm.Optional('Dossier')
class Copie(db.Entity): id_copie = orm.PrimaryKey(int, auto=True) id_film = orm.Required(Film) code = orm.Required(str) locations = orm.Set('Location')
class AuthentificationClient(db.Entity): id_authentification = orm.PrimaryKey(int, auto=True) courriel = orm.Required(str, unique=True) mot_de_passe = orm.Required(str) client = orm.Optional('Client')
class Role(db.Entity): id_film = orm.Required(Film) id_personne = orm.Required(Personne) titre = orm.Required(str) orm.PrimaryKey(id_film, id_personne)
class User(db.Entity): id = orm.PrimaryKey(int, auto=True) name = orm.Required(str) notify = orm.Required(bool, default=True) groups = orm.Set("Group")
class Abonnement(db.Entity): id_abonnement = orm.PrimaryKey(int, auto=True) id_forfait = orm.Required(Forfait) date_debut = orm.Required(date) date_fin = orm.Required(date) client = orm.Optional('Client')
class Group(db.Entity): name = orm.PrimaryKey(str) collective_noun = orm.Required(str) users = orm.Set("User")
class CarteCredit(db.Entity): id_carte = orm.PrimaryKey(int, auto=True) numero = orm.Required(str) cvv = orm.Required(str) date_expiration = orm.Required(date) client = orm.Optional('Client')
class NSFWChannel(db.Entity): id = orm.PrimaryKey(str) def __repr__(self): return f'<NSFWChannel id="{self.id}")>'
class Genre(db.Entity): id_genre = orm.PrimaryKey(int, auto=True) nom = orm.Required(str) films = orm.Set('Film')
class Tracking(db.Entity): id = orm.PrimaryKey(str) status = orm.Optional(str)
class Pays(db.Entity): id_pays = orm.PrimaryKey(int, auto=True) nom = orm.Required(str) films = orm.Set('Film')
class Account(db.Entity, DictConversionMixin): # __slot__ = ('name', 'balance', 'posts', 'budget_items') name = orm.PrimaryKey(str) balance = orm.Optional(lambda: Balance, cascade_delete=True) posts = orm.Set(lambda: Post, cascade_delete=True)
class CardTypes(db.Entity): _table_ = ('public', 'CardTypes') CardTypeID = orm.PrimaryKey(int, auto=True) CardTypeTitle = orm.Required(str) LatestUpdateDate = orm.Required(datetime, default=datetime.utcnow)
class ItemTemplate(db.Entity): """ItemTemplate represents in-game items (including containers). Each ItemTemplate corresponds to one item. """ entry = orm.PrimaryKey(int) # Reverse attribute: all instances of this template. item_backlink = orm.Set('Item') npc_main_hands_backlink = orm.Set('Unit', reverse='npc_main_hand') npc_off_hands_backlink = orm.Set('Unit', reverse='npc_off_hand') npc_rangeds_backlink = orm.Set('Unit', reverse='npc_ranged') # TODO: sort these fields, copied from item_template.sql class_ = orm.Optional(int) subclass = orm.Optional(int) name = orm.Optional(str) displayid = orm.Optional(int) Quality = orm.Optional(int) Flags = orm.Optional(int) BuyCount = orm.Optional(int) BuyPrice = orm.Optional(int) SellPrice = orm.Optional(int) InventoryType = orm.Optional(int) AllowableClass = orm.Optional(int) AllowableRace = orm.Optional(int) ItemLevel = orm.Optional(int) RequiredLevel = orm.Optional(int) RequiredSkill = orm.Optional(int) RequiredSkillRank = orm.Optional(int) requiredspell = orm.Optional(int) requiredhonorrank = orm.Optional(int) RequiredCityRank = orm.Optional(int) RequiredReputationFaction = orm.Optional(int) RequiredReputationRank = orm.Optional(int) maxcount = orm.Optional(int) stackable = orm.Optional(int) ContainerSlots = orm.Optional(int) stat_type1 = orm.Optional(int) stat_value1 = orm.Optional(int) stat_type2 = orm.Optional(int) stat_value2 = orm.Optional(int) stat_type3 = orm.Optional(int) stat_value3 = orm.Optional(int) stat_type4 = orm.Optional(int) stat_value4 = orm.Optional(int) stat_type5 = orm.Optional(int) stat_value5 = orm.Optional(int) stat_type6 = orm.Optional(int) stat_value6 = orm.Optional(int) stat_type7 = orm.Optional(int) stat_value7 = orm.Optional(int) stat_type8 = orm.Optional(int) stat_value8 = orm.Optional(int) stat_type9 = orm.Optional(int) stat_value9 = orm.Optional(int) stat_type10 = orm.Optional(int) stat_value10 = orm.Optional(int) dmg_min1 = orm.Optional(float) dmg_max1 = orm.Optional(float) dmg_type1 = orm.Optional(int) dmg_min2 = orm.Optional(float) dmg_max2 = orm.Optional(float) dmg_type2 = orm.Optional(int) dmg_min3 = orm.Optional(float) dmg_max3 = orm.Optional(float) dmg_type3 = orm.Optional(int) dmg_min4 = orm.Optional(float) dmg_max4 = orm.Optional(float) dmg_type4 = orm.Optional(int) dmg_min5 = orm.Optional(float) dmg_max5 = orm.Optional(float) dmg_type5 = orm.Optional(int) def dmg(self, dmg_type: int) -> Tuple[float, float]: for i in range(1, 5 + 1): if getattr(self, f'dmg_type{i}') == dmg_type: return (getattr(self, f'dmg_min{i}'), getattr(self, f'dmg_max{i}')) return (0.0, 0.0) armor = orm.Optional(int) holy_res = orm.Optional(int) fire_res = orm.Optional(int) nature_res = orm.Optional(int) frost_res = orm.Optional(int) shadow_res = orm.Optional(int) arcane_res = orm.Optional(int) delay = orm.Optional(int) ammo_type = orm.Optional(int) RangedModRange = orm.Optional(int) spellid_1 = orm.Optional(int) spelltrigger_1 = orm.Optional(int) spellcharges_1 = orm.Optional(int) spellppmRate_1 = orm.Optional(float) spellcooldown_1 = orm.Optional(int) spellcategory_1 = orm.Optional(int) spellcategorycooldown_1 = orm.Optional(int) spellid_2 = orm.Optional(int) spelltrigger_2 = orm.Optional(int) spellcharges_2 = orm.Optional(int) spellppmRate_2 = orm.Optional(float) spellcooldown_2 = orm.Optional(int) spellcategory_2 = orm.Optional(int) spellcategorycooldown_2 = orm.Optional(int) spellid_3 = orm.Optional(int) spelltrigger_3 = orm.Optional(int) spellcharges_3 = orm.Optional(int) spellppmRate_3 = orm.Optional(float) spellcooldown_3 = orm.Optional(int) spellcategory_3 = orm.Optional(int) spellcategorycooldown_3 = orm.Optional(int) spellid_4 = orm.Optional(int) spelltrigger_4 = orm.Optional(int) spellcharges_4 = orm.Optional(int) spellppmRate_4 = orm.Optional(float) spellcooldown_4 = orm.Optional(int) spellcategory_4 = orm.Optional(int) spellcategorycooldown_4 = orm.Optional(int) spellid_5 = orm.Optional(int) spelltrigger_5 = orm.Optional(int) spellcharges_5 = orm.Optional(int) spellppmRate_5 = orm.Optional(float) spellcooldown_5 = orm.Optional(int) spellcategory_5 = orm.Optional(int) spellcategorycooldown_5 = orm.Optional(int) bonding = orm.Optional(int) description = orm.Optional(str) PageText = orm.Optional(int) LanguageID = orm.Optional(int) PageMaterial = orm.Optional(int) startquest = orm.Optional(int) lockid = orm.Optional(int) Material = orm.Optional(int) sheath = orm.Optional(int) RandomProperty = orm.Optional(int) block = orm.Optional(int) itemset = orm.Optional(int) MaxDurability = orm.Optional(int) area = orm.Optional(int) Map = orm.Optional(int) BagFamily = orm.Optional(int) DisenchantID = orm.Optional(int) FoodType = orm.Optional(int) minMoneyLoot = orm.Optional(int) maxMoneyLoot = orm.Optional(int) Duration = orm.Optional(int) ExtraFlags = orm.Optional(int)
class RoleAccesses(db.Entity): _table_ = ('public', 'RoleAccesses') RoleAccessID = orm.PrimaryKey(int, auto=True) RoleID = orm.Required("Roles", reverse="RoleAccessesRole") ServiceID = orm.Required("Services", reverse="RoleAccessesService") LatestUpdateDate = orm.Required(datetime, default=datetime.utcnow)
class LabelledEntity(db.Entity): id = orm.PrimaryKey(int, auto=True) # security risk - ok for this mini app text = orm.Required(str) entity = orm.Required(str) from_url = orm.Optional(str)
class CardPrefixCodes(db.Entity): _table_ = ('public', 'CardPrefixCodes') CardID = orm.PrimaryKey(int, auto=True) CardPrefixCode = orm.Required(str, unique=True) BankID = orm.Required("Banks", reverse="BankCardPrefix") LatestUpdateDate = orm.Required(datetime, default=datetime.utcnow)
class Regelwiki(db.Entity): url = orm.PrimaryKey(str) title = orm.Required(str) body = orm.Optional(str) children = orm.Optional(orm.StrArray) parents = orm.Optional(orm.StrArray)
class BloodTest(db.Entity): id = p.PrimaryKey(int, auto=True) date = p.Required(datetime) values = p.Set('BloodTestEntry') images = p.Set('TestImage') tag = p.Required('Tag')