class ExposureCombination(db.Entity): night_bundle = orm.Optional(NightBundle) filename = orm.Required(str) combination_type = orm.Required(int, size=8) exposures = orm.Set("Exposure") uses_combinations = orm.Set("ExposureCombination") is_combined_in = orm.Set("ExposureCombination")
class Enclosure(db.Entity): id = orm.PrimaryKey(str, default=terrariumUtils.generate_uuid) name = orm.Required(str) image = orm.Optional(str) description = orm.Optional(str) areas = orm.Set(lambda: Area) doors = orm.Set(lambda: Button) webcams = orm.Set(lambda: Webcam) def __rename_image(self): regex = re.compile(f'{self.id}\.(jpg|jpeg|gif|png)$', re.IGNORECASE) if '' != self.image and not regex.search(self.image): image = Path(self.image) image_name = f'{image.parent}/{self.id}{image.suffix}' image.rename(image_name) self.image = str(image_name) def before_insert(self): self.__rename_image() def before_update(self): self.__rename_image() def before_delete(self): image = Path(self.image) if image.exists() and image.is_file(): image.unlink() def __repr__(self): return f'Enclosure {self.name} with {len(self.areas)} areas'
class Artist(db.Entity): name = orm.Required(str) age = orm.Optional(int) genres = orm.Set(Genre) pieces = orm.Set('Piece') @EntityMutation.mark def customMutation(self): 'Takes no args' @UpdateEntityMutation.mark def customUpdate(self, genres): ''' Marked with UpdateEntityMutation, so can take keywords matching entity fields ''' self.genres = [Genre[pk] for pk in genres] class changeAge(EntityMutation): ''' You can also define custom mutation with a class ''' def get_input_fields(self): ret = EntityMutation.get_input_fields(self) ret.update({'age': GraphQLInputObjectField(GraphQLInt)}) return ret def mutate_func(self, obj, age): obj.age = age
class Service(db.Entity): service_name = orm.Required(str) function_name = orm.Required(str) params = orm.Required(str) users = orm.Set("User") key_words = orm.Set("KeyWord") orm.PrimaryKey(service_name, function_name)
class Entry(db.Entity): """ Indexed entry """ file_path = orm.Required(str) category = orm.Optional(str) status = orm.Required(int) # UTC-normalized, for ordering and visibility utc_date = orm.Required(datetime.datetime) # arbitrary timezone, for pagination local_date = orm.Required(datetime.datetime) # The actual displayable date - stored as string to guarantee the timezone # is maintained display_date = orm.Required(str) slug_text = orm.Optional(str) entry_type = orm.Optional(str) redirect_url = orm.Optional(str) # maps to Redirect-To title = orm.Optional(str) sort_title = orm.Optional(str) aliases = orm.Set("PathAlias") tags = orm.Set("EntryTag") entry_template = orm.Optional(str) # maps to Entry-Template orm.composite_index(category, entry_type, utc_date) orm.composite_index(category, entry_type, local_date) orm.composite_index(category, entry_type, sort_title)
class AnonymousUser(db.Entity): ip = orm.Required(str) browser_id = orm.Required(str) date_connected = orm.Required(datetime, default=datetime.utcnow) tracks = orm.Set(Track) votes = orm.Set('Vote') orm.PrimaryKey(ip, browser_id) @classmethod def get_for_request(cls, request): ip = request.headers.get('HTTP_X_FORWARDED_FOR') if ip: app.logger.info('HTTP_X_FORWARDED_FOR: {}'.format(ip)) else: ip = request.headers.get('X-Forwarded-For') if ip: app.logger.info('X-Forwarded-For: {}'.format(ip)) else: ip = request.remote_addr app.logger.info('remote_addr: {}'.format(ip)) browser_id = 'TODO' return cls.get(ip=ip, browser_id=browser_id) \ or cls(ip=ip, browser_id=browser_id) def get_queued_tracks(self, playlist: Playlist): return self.tracks.select(lambda x: x.playlist == playlist and (x.played_at is None or x.disqualified))
class Currency(db1.Entity): _table_ = 'Currencies' resource = orm.Set(Resource, reverse='currency') exrates = orm.Set(ExchangeRate, reverse='currency') name = orm.Required(str) sname = orm.Required(str) isnh = orm.Required(bool)
class Feed(DB.Entity): articles = orm.Set('Article') categories = orm.Set('Category') title = orm.Required(str) url = orm.Required(str, unique=True) etag = orm.Optional(str) modified = orm.Optional(str)
class Website(db.Entity): _table_ = 'websites' id = orm.PrimaryKey(int, auto=True) name = orm.Required(str, unique=True) url = orm.Required(str, unique=True) authors = orm.Set('Author') articles = orm.Set('Article')
class Services(db.Entity): _table_ = ('public', 'Services') ServiceID = orm.PrimaryKey(int, auto=True) ServiceTitle = orm.Required(str, unique=True) LatestUpdateDate = orm.Required(datetime, default=datetime.utcnow) TransServiceService = orm.Set("TransServices", reverse="ServiceID") RoleAccessesService = orm.Set("RoleAccesses", reverse="ServiceID")
class Address(db.Entity): gps = orm.Set(GP) patients = orm.Set(Patient) districtName = orm.Required(str) districtCode = orm.Required(str) cityName = orm.Required(str) vTown = orm.Optional(str)
class ChrRaces(db.Entity): id = orm.PrimaryKey(int) flags = orm.Required(int) faction = orm.Required('Faction', reverse='chr_races_backlink') exploration_sound_id = orm.Required(int) male_display_info = orm.Required('UnitModelInfo', reverse='chr_races_male_id_backlink') female_display_info = orm.Required('UnitModelInfo', reverse='chr_races_female_id_backlink') client_prefix = orm.Required(common.SingleString) mount_scale = orm.Required(float) base_language = orm.Required('Languages', reverse='chr_races_backlink') creature_type = orm.Required('CreatureType', reverse='chr_races_backlink') login_effect = orm.Required('Spell', reverse='chr_races_login_effect_backlink') combat_stun = orm.Required('Spell', reverse='chr_races_combat_stun_backlink') res_sickness = orm.Required('Spell', reverse='chr_races_res_sickness_backlink') splash_sound_id = orm.Required(int) starting_taxi_nodes = orm.Required(int) client_file_string = orm.Required(common.SingleString) cinematic_sequence = orm.Optional('CinematicSequences', reverse='chr_races_backlink') name = orm.Required(common.MultiEnumString) facial_hair_customization_male = orm.Required(common.SingleString) facial_hair_customization_female = orm.Required(common.SingleString) hair_customization = orm.Required(common.SingleString) unit_backlink = orm.Set('Unit') starting_stats_backlink = orm.Set('StartingStats')
class Series(db.Entity): """ Модель серии """ coauthors = orm.Set('CoAuthorsSeries') cover = orm.Required(bool, default=False) date = orm.Required(datetime, 6, default=datetime.utcnow) draft = orm.Required(bool, default=True) finished = orm.Required(bool, default=False) freezed = orm.Required(bool, default=False) mark = orm.Required(int, size=16, default=0) notes = orm.Optional(orm.LongStr) original = orm.Required(bool, default=True) summary = orm.Optional(orm.LongStr, lazy=False, autostrip=False) title = orm.Required(str, 512) updated = orm.Required(datetime, 6, default=datetime.utcnow) views = orm.Required(int, default=0) extra = orm.Required(orm.LongStr, lazy=False, default='{}') permissions = orm.Set(InSeriesPermissions) def __str__(self): return self.title def before_update(self): self.updated = datetime.utcnow() @property def stories(self): return orm.select(x.story for x in InSeriesPermissions if x.series == self).without_distinct().order_by('x.id')
class Faction(db.Entity): id = orm.PrimaryKey(int) reputation_index = orm.Required(int, unsigned=True) reputation_race_mask1 = orm.Required(int, unsigned=True) reputation_race_mask2 = orm.Required(int, unsigned=True) reputation_race_mask3 = orm.Required(int, unsigned=True) reputation_race_mask4 = orm.Required(int, unsigned=True) reputation_class_mask1 = orm.Required(int, unsigned=True) reputation_class_mask2 = orm.Required(int, unsigned=True) reputation_class_mask3 = orm.Required(int, unsigned=True) reputation_class_mask4 = orm.Required(int, unsigned=True) reputation_base1 = orm.Required(int, unsigned=True) reputation_base2 = orm.Required(int, unsigned=True) reputation_base3 = orm.Required(int, unsigned=True) reputation_base4 = orm.Required(int, unsigned=True) reputation_flags1 = orm.Required(int, unsigned=True) reputation_flags2 = orm.Required(int, unsigned=True) reputation_flags3 = orm.Required(int, unsigned=True) reputation_flags4 = orm.Required(int, unsigned=True) parent_faction = orm.Optional('Faction', reverse='parent_faction_backlink') name = orm.Required(common.MultiEnumString) description = orm.Optional(common.MultiString) parent_faction_backlink = orm.Set('Faction', reverse='parent_faction') auction_house_backlink = orm.Set('AuctionHouse', reverse='faction') chr_races_backlink = orm.Set('ChrRaces', reverse='faction') player_backlink = orm.Set('Player')
class MedicalConditions(db.Entity): mc_id = orm.PrimaryKey(int, auto=True) name = orm.Required(str) radiologyAssesment = orm.Set("RadiologyAssesment", reverse="result") social_history = orm.Set(SocialHistory, reverse="condition") family_history = orm.Set(FamilyMedicalHistory, reverse="condition") radiologyAssesmentHistory = orm.Set(RadiologyAssesmentHistory, reverse="result")
class Roles(db.Entity): _table_ = ('public', 'Roles') RoleID = orm.PrimaryKey(int, auto=True) RoleTitle = orm.Required(str) Description = orm.Optional(str, nullable=True) LatestUpdateDate = orm.Required(datetime, default=datetime.utcnow) UserRole = orm.Set("Users", reverse="RoleID") RoleAccessesRole = orm.Set("RoleAccesses", reverse="RoleID")
class Person(DataBase.db.Entity): first_name = orm.Required(str) last_name = orm.Required(str) id_card = orm.Required(str) positions = orm.Set('Position') records = orm.Set('Record') schedules = orm.Set('Schedule') timestamp = orm.Required(datetime, default=datetime.now)
class Tag(db.Entity): value = orm.Required(str) as_tag = orm.Set('PDF', lazy=False, reverse='tags') as_subject = orm.Set('PDF', lazy=False, reverse='subjects') def remove(self): with orm.db_session: Tag[self.id].delete()
class TorrentState(db.Entity): rowid = orm.PrimaryKey(int, auto=True) infohash = orm.Required(database_blob, unique=True) seeders = orm.Optional(int, default=0) leechers = orm.Optional(int, default=0) last_check = orm.Optional(int, size=64, default=0) metadata = orm.Set('TorrentMetadata', reverse='health') trackers = orm.Set('TrackerState', reverse='torrents')
class Personne(db.Entity): id_personne = orm.PrimaryKey(int, auto=True) nom = orm.Required(str) date_naissance = orm.Optional(date) lieu_naissance = orm.Optional(str) bio = orm.Optional(str) films = orm.Set('Film', reverse='id_realisateur') roles = orm.Set('Role') film_scenarist = orm.Set('Film', reverse='scenaristes')
class Airport(db.Entity): _table_ = 'Airports' country = orm.Required(str) iso3 = orm.Required(str) city = orm.Required(str) code = orm.Required(str) iteration = orm.Required(int) directions = orm.Set('Direction', reverse='destination') departures = orm.Set('Direction', reverse='departure')
class PoClass(database.Entity): """ Класс ПО - код """ id = orm.PrimaryKey(int, auto=True) code = orm.Required(str, unique=True) # po = orm.Set("PO") classifier = orm.Set(Classifier)
class ClientApplication(_db.Entity): id = orm.PrimaryKey(int, auto=True) app_name = orm.Required(str) client_id = orm.Required(str) client_secret = orm.Required(str) tokens = orm.Set(lambda: WnsAccessToken) subscribers = orm.Set(lambda: Subscriber) messages = orm.Set(lambda: Message) api_keys = orm.Set(lambda: ApiKey)
class Series(db.Entity): ticker = orm.Required(str, unique=True) description = orm.Required(str) group = orm.Required( str) #geral, grupo, subgrupo, item, subitem, nucleo, nucleo kind = orm.Required(str) # peso, variaçao indicator = orm.Required(str) # ipca, ipca15 observations = orm.Set('Observation') tables = orm.Set('TableDb')
class Banks(db.Entity): _table_ = ('public', 'Banks') BankID = orm.PrimaryKey(int, auto=True) BankCode = orm.Required(str, unique=True) BankName = orm.Required(str) IsOwner = orm.Required(bool) LatestUpdateDate = orm.Required(datetime, default=datetime.utcnow) BankCardPrefix = orm.Set("CardPrefixCodes", reverse="BankID") BankBranch = orm.Set("Branches", reverse="BankID")
class Customer(db.Entity): address = orm.Required(str) country = orm.Required(str) email = orm.Required(str, unique=True) name = orm.Required(str) password = orm.Required(str) cart_items = orm.Set("CartItem") orders = orm.Set("Order")
class Course(db.Entity): course_id = orm.PrimaryKey(int, auto=True) name = orm.Required(str) description = orm.Required(orm.LongStr) curr_weight = orm.Required(float) exam_weight = orm.Required(float) credits = orm.Required(int) students = orm.Set('Markings') lessons = orm.Set('Lesson')
class PDF(db.Entity): address = orm.PrimaryKey(str) tags = orm.Set(Tag) subjects = orm.Set(Tag) is_eng = orm.Required(bool) def remove(self): with orm.db_session: PDF[self.address].delete()
class Student(db.Entity): """Студенты.""" vk_id: int = orm.Required(int) first_name: str = orm.Required(str) last_name: str = orm.Required(str) group: Group = orm.Required(Group) subgroup: Optional[int] = orm.Optional(int) email: Optional[str] = orm.Optional(str) phone_number: Optional[str] = orm.Optional(str) academic_status: AcademicStatus = orm.Required(AcademicStatus) financial_incomes: Iterable["FinancialIncome"] = orm.Set( "FinancialIncome", cascade_delete=True, ) issues: Iterable["Issue"] = orm.Set( "Issue", cascade_delete=True, ) admins: Iterable["Admin"] = orm.Set( Admin, cascade_delete=True, ) state_storage: Optional["StateStorage"] = orm.Optional( "StateStorage", cascade_delete=True, ) admin_config: Optional[AdminConfig] = orm.Optional( AdminConfig, cascade_delete=True, ) call_storage: Optional["MentionStorage"] = orm.Optional( "MentionStorage", cascade_delete=True, ) chat_registrar_config: Optional["ChatRegistrarConfig"] = orm.Optional( "ChatRegistrarConfig", cascade_delete=True, ) financial_config: Optional["FinancialConfig"] = orm.Optional( "FinancialConfig", cascade_delete=True, ) liststudents: Iterable["ListStudents"] = orm.Set( "ListStudents", cascade_delete=True, ) def is_admin(self) -> bool: """ Проверяет, является ли студент администратором. Returns: bool: статус администрирования студента """ return not self.admins.is_empty()
class SourceFile(db.Entity): fullPath = pony.PrimaryKey(str) fileName = pony.Required(str) includes = pony.Set('Include', reverse='owner') includedBy = pony.Set('Include', reverse='link') isTarget = pony.Required(bool) isHeader = pony.Required(bool) dependenciesCount = pony.Optional(int) includersCount = pony.Optional(int)