class Video(BaseModel): id = CharField(max_length=32, unique=True, primary_key=True) etag = CharField(max_length=64) published = DateTimeField() # channel_id = CharField(max_length=32) title = CharField(max_length=128) thumbnails = JSONField(default={}) topic_details = JSONField(default={}) meta = JSONField(default={}) description = CharField(max_length=6000) ''' search_description=fn.to_tsvector(description)) ''' # search_description = TSVectorField() tags = ArrayField(CharField) category_id = IntegerField(default=0) duration = IntervalField() # timedelta caption = BooleanField(default=False) license_content = BooleanField(default=False) defintion = CharField(max_length=8) projection = CharField(max_length=15) dimension = CharField(max_length=3) localization = JSONField(default={}) channel = ForeignKeyField(Channel, backref='videos')
class Pra(BaseModel): active = BooleanField(null=True) comments = TextField(null=True) county = CharField(null=True) # three keys: "name", "method", "info" with corresonding values currentcontact = JSONField(null=True) currentstatus = CharField(null=True) dataactionable = BooleanField(null=True) dataanalyzed = BooleanField(null=True) datacleaned = BooleanField(null=True) datageocoded = BooleanField(null=True) datatype = CharField(null=True) dataqualitychecked = BooleanField(null=True) dateoflastcontact = CharField(null=True) dateofrequest = CharField(null=True) datereceived = CharField(null=True) enddaterequested = CharField(null=True) enddatereturned = CharField(null=True) # three keys: "name", "method", "info" with corresonding values initialcontact = JSONField(null=True) issheriffsdept = BooleanField(null=True) lastupdated = CharField(null=True) lea = CharField(null=True) leadmember = CharField(null=True) linktoprarequest = CharField(null=True) startdaterequested = CharField(null=True) startdatereturned = CharField(null=True) # each entry is stored with key as timestamp and value as the note updates = JSONField(null=True) # each entry is stored with variable name as key, and then two subkeys: variables = JSONField(null=True) # the subkeys are requested (bool as value) and received (bool as value) variableschecked = BooleanField(null=True) variablescomplete = BooleanField(null=True)
class BaseModel(Model): created_at = DateTimeField(default=datetime.now) updated_at = DateTimeField() created_by = JSONField(default=dict) updated_by = JSONField(default=dict) class Meta: database = db
class Orders(BaseModel): user = ForeignKeyField(Users, backref='orders') info = JSONField(null=True) payment = JSONField(null=True) location = JSONField(null=True) status = CharField( default='waiting' ) # waiting | processing | cancelled | suspended | completed
class SearchResult(Model): orig_name = TextField(unique=True) name = TextField(default="") url = TextField(default="") options = JSONField(default=[]) specifications = JSONField(default={}) done = BooleanField(default=False) class Meta: database = db
class Trial(pw.Model): config_id = pw.CharField(primary_key=True) cost_time = pw.FloatField(null=True) failed_info = pw.TextField(null=True) all_score = JSONField(null=True) config = JSONField(null=True) class Meta: database = db table_name = os.environ['TABLE_NAME']
class User(BaseModel): tg_id = IntegerField() username = CharField() registered = DateTimeField(default=datetime.now) api_key = CharField(default="") secret = CharField(default="") msg_ids = JSONField(default=msg_ids) orders_count = IntegerField(default=0) temp = JSONField(default={}) mode = CharField(default="")
class BaseHouse(BaseModel): top_region = enums.TopRegionField(null=True) sub_region = enums.SubRegionField(null=True) deal_time = DateTimeField(null=True) deal_status = enums.DealStatusField(default='OPENED') n_day_deal = IntegerField(null=True) vendor = ForeignKeyField(Vendor) vendor_house_id = CharField() vendor_house_url = CharField(null=True) # price related monthly_price = IntegerField(null=True) deposit_type = enums.DepositTypeField(null=True) n_month_deposit = FloatField(null=True) deposit = IntegerField(null=True) is_require_management_fee = BooleanField(null=True) monthly_management_fee = IntegerField(null=True) has_parking = BooleanField(null=True) is_require_parking_fee = BooleanField(null=True) monthly_parking_fee = IntegerField(null=True) per_ping_price = FloatField(null=True) # other basic info building_type = enums.BuildingTypeField(null=True) property_type = enums.PropertyTypeField(null=True) is_rooftop = BooleanField(null=True) floor = IntegerField(null=True) total_floor = IntegerField(null=True) dist_to_highest_floor = IntegerField(null=True) floor_ping = FloatField(null=True) n_living_room = IntegerField(null=True) n_bed_room = IntegerField(null=True) n_bath_room = IntegerField(null=True) n_balcony = IntegerField(null=True) apt_feature_code = CharField(null=True) rough_address = CharField(null=True) rough_gps = CharField(null=True) # boolean map # eletricity: true, water: true, gas: true, internet: true, cable_tv: true additional_fee = JSONField(null=True) # school, park, dept_store, conv_store, traditional_mkt, night_mkt, # hospital, police_office living_functions = JSONField(null=True) # subway, bus, public_bike, train, hsr transportation = JSONField(null=True) has_tenant_restriction = BooleanField(null=True) has_gender_restriction = BooleanField(null=True) gender_restriction = enums.GenderTypeField(null=True) can_cook = BooleanField(null=True) allow_pet = BooleanField(null=True) has_perperty_registration = BooleanField(null=True) # undermined for now facilities = JSONField(null=True) contact = enums.ContactTypeField(null=True) agent_org = CharField(null=True) imgs = JSONField(null=True)
class Channel(BaseModel): ''' https://www.googleapis.com/youtube/v3/channels?part=snippet,contentDetails&id={}&key=AIzaSyAtbO0oNahwQ0Sikyg9vEcn5xqeUywb64s ''' channel_id = CharField(max_length=32, unique=True, primary_key=True) title = CharField(max_length=64, unique=True) country = ForeignKeyField(Region) description = CharField(max_length=2000) thumbnails = JSONField(default={}) content_details = JSONField(default={}) meta = JSONField(default={})
class UserTaskTree(BaseModel): user = ForeignKeyField(User) name = CharField() date = DateField() nodes = JSONField() expanded_nodes = JSONField(default=[]) def nodes_to_str(self): return json.dumps(self.nodes) def expanded_nodes_to_str(self): return json.dumps(self.expanded_nodes)
class Result(Model): download = DecimalField(index=True, max_digits=20, decimal_places=10) upload = DecimalField(index=True, max_digits=20, decimal_places=10) ping = DecimalField(index=True, max_digits=10, decimal_places=5) timestamp = DateTimeField(index=True) bytes_sent = IntegerField() bytes_received = IntegerField() server = JSONField() client = JSONField() class Meta: database = DATABASE
class ParamSet(BaseModel): """ De facto, Experiments which we are running """ encoding = JSONField( null=False, default=dict, ) init = peewee.CharField( null=False, choices=constants.INITS, ) sel_type = peewee.CharField( null=False, choices=constants.SEL_TYPES, ) L = peewee.IntegerField( null=False ) N = peewee.IntegerField( null=False ) stop_cond = JSONField( null=False, default=dict ) num_runsets = peewee.IntegerField( null=False ) num_runs = peewee.IntegerField( null=False ) crossover_pc = peewee.DoubleField( null=False ) result_pmax = peewee.DoubleField( null=True ) action_log = JSONField( null=False, default=list ) func_case = peewee.ForeignKeyField( FuncCase, null=False, on_delete='RESTRICT', lazy_load=True, backref='param_sets' )
class github_message(BaseModel): ''' create by bigzhu at 15/07/15 17:57:00 ''' # id to id_str id_str = TextField(null=True) type = TextField(null=True) actor = IntegerField(null=True) # trans to id repo = JSONField(null=True) payload = JSONField(null=True) public = BooleanField(null=True) created_at = DateTimeField(null=True) org = JSONField(null=True) content = BinaryJSONField(null=True) # 整合的内容
class User_survey(UserMixin, BaseModel): question_response = JSONField(null=True) student_survey_id = pw.IntegerField(null=True) confidence_level = pw.IntegerField(null=True) percentage_correct = pw.IntegerField(null=True) user_id = pw.ForeignKeyField(User_, backref="user_surveys", null=True) survey_id = pw.ForeignKeyField(Survey, backref="user_surveys", null=True)
class User(BasicModel): """ Пользователь """ login = CharField(unique=True) email = CharField(null=True, unique=True) phone = CharField(null=True) password_hash = CharField(null=True) first_name = CharField(default="") last_name = CharField(null=True) role = CharField(null=True, default="user") picture = JSONField(null=True) status = CharField(default="unconfirmed") code = CharField(null=True) rating = DoubleField(default=0) reg_method = CharField(null=True) registration_date = DateTimeField(null=True) money = IntegerField(default=0) lang = CharField(default="en") timezone = CharField(default="UTC") utm_source = CharField(max_length=1000, null=True) utm_medium = CharField(max_length=1000, null=True) utm_campaign = CharField(max_length=1000, null=True) def __str__(self): return "{id}: {first_name} {last_name} ({pair})".format(**self.dict())
class PoolTransaction(Model): id = CharField(max_length=64, primary_key=True) version = SmallIntegerField() sequence = SmallIntegerField() timestamp = IntegerField(index=True) sender_public_key = CharField(max_length=66, index=True) recipient_id = CharField(max_length=66, null=True, index=True) type = SmallIntegerField() vendor_field = CharField(max_length=255, null=True) amount = BigIntegerField() fee = BigIntegerField() asset = JSONField(null=True) expires_at = IntegerField(index=True) class Meta: table_name = "pool_transactions" @classmethod def from_crypto(cls, transaction): # TODO: figure out how to improve this model = cls() model.id = transaction.id model.version = transaction.version model.sequence = transaction.sequence model.timestamp = transaction.timestamp model.sender_public_key = transaction.sender_public_key model.recipient_id = transaction.recipient_id model.type = transaction.type model.vendor_field = transaction.vendor_field model.amount = transaction.amount model.fee = transaction.fee model.asset = transaction.asset model.expires_at = transaction.calculate_expires_at( config.pool["max_transaction_age"]) return model
class Alum(Model): id = PrimaryKeyField(unique=True) fname = CharField() lname = CharField() github = CharField() email = CharField() linkedin = CharField() portfolio = CharField() resume = CharField() tag = CharField() description = CharField() is_admin = BooleanField() is_active = BooleanField() account_id = CharField() token = JSONField() class Meta: database = DB def to_json(self): d = { 'fname': self.fname, 'lname': self.lname, 'github': self.github, 'email': self.email, 'linkedin': self.linkedin, 'portfolio': self.portfolio, 'resume': self.resume, 'tag': self.tag, 'description': self.description, 'isActive': self.isActive } return json.dumps(d)
class OrderItems(BaseModel): order = ForeignKeyField(Orders, backref='items') order_item = JSONField() status = CharField( default='waiting' ) # waiting | processing | cancelled | suspended | completed
class Object(pw.Model): array_field = ArrayField() binary_json_field = BinaryJSONField() dattime_tz_field = DateTimeTZField() hstore_field = HStoreField() interval_field = IntervalField() json_field = JSONField() ts_vector_field = TSVectorField()
class Game(BaseModel): """Game model.""" title = CharField( max_length=100, unique=True, ) config = JSONField()
class Combinations(BaseModel): user = ForeignKeyField(Users, backref='combinations') name = CharField() items = ArrayField() info = JSONField(null=True) is_private = BooleanField(default=False) is_buyable = BooleanField(default=False)
class Workout(BaseModel): id = PrimaryKeyField() name = CharField(null=False) category = CharField() start_time = DateTimeField(default=datetime.now()) end_time = DateTimeField(null=True) creator = CharField(null=False) exercises = JSONField(default=[])
class Transaction(Model): id = CharField(max_length=64, primary_key=True) version = SmallIntegerField() block_id = ForeignKeyField(Block) sequence = SmallIntegerField() timestamp = IntegerField(index=True) sender_public_key = CharField(max_length=66, index=True) recipient_id = CharField(max_length=66, null=True, index=True) type = SmallIntegerField() vendor_field = CharField(max_length=255, null=True) amount = BigIntegerField() fee = BigIntegerField() serialized = BytesField() asset = JSONField(null=True) class Meta: table_name = "transactions" indexes = (( ("sender_public_key", "recipient_id", "vendor_field", "timestamp"), False, ), ) @classmethod def from_crypto(cls, transaction): # TODO: figure out how to improve this model = cls() model.id = transaction.id model.version = transaction.version model.block_id = transaction.block_id model.sequence = transaction.sequence model.timestamp = transaction.timestamp model.sender_public_key = transaction.sender_public_key model.recipient_id = transaction.recipient_id model.type = transaction.type model.vendor_field = transaction.vendor_field model.amount = transaction.amount model.fee = transaction.fee model.asset = transaction.asset # TODO: probably obsolete serialized = transaction.serialize() model.serialized = serialized return model @staticmethod def statistics(): """Returns statistics about Blocks table """ stats = Transaction.select( fn.COUNT(Transaction.id), fn.SUM(Transaction.fee), fn.SUM(Transaction.amount), ).scalar(as_tuple=True) return { "transactions_count": stats[0], "total_fee": stats[1], "total_amount": stats[2], }
class Weather(BaseModel): city = peewee.CharField(max_length=60) weather_data = JSONField() created = peewee.DateTimeField(default=datetime.datetime.utcnow) # def __str__ (self): # return self.name def celcius(self): return self.weather_data['main']['temp'] - 273.15
class Submission_db(Model): learning_unit = IntegerField() slack_id = TextField() grade = IntegerField() metadata = JSONField() class Meta: database = DB primary_key = CompositeKey('learning_unit', 'slack_id')
class EventRecord(Model): sequence_id = UUIDField() position = BigIntegerField() topic = CharField(max_length=255) data = JSONField() class Meta: db_table = 'es_int_events' primary_key = CompositeKey('sequence_id', 'position')
class Person(BaseModel): brain_id = peewee.PrimaryKeyField(unique=True) name = peewee.CharField(max_length=60) token = JSONField() user_id = peewee.CharField(max_length=60) user_email = peewee.CharField(max_length=60) # region = peewee.CharField(max_length=60) def __str__(self): return self.name
class Post(BaseModel): id = PrimaryKeyField() comments = JSONField(default=[]) photo = CharField(null=True) caption = CharField(null=True) date = DateTimeField(default=datetime.now()) original_workout = ForeignKeyField(Workout) class Meta: index = ('post', 'original_workout')
class RequestTS(BaseTSModel): request_type = enums.RequestTypeField() vendor = ForeignKeyField(Vendor) seed = JSONField() is_pending = BooleanField(default=False) last_status = IntegerField(null=True) class Meta: indexes = ((('year', 'month', 'day', 'hour'), False), ) table_name = 'request_ts'
class Probes(Model): product = CharField() name = CharField() type = CharField() description = TextField() definition = JSONField(functools.partial(json.dumps, cls=SetEncoder)) index = TSVectorField() class Meta: database = db indexes = ((("product", "name"), True), )