class Balance(models.Model): # time at which we took the snapshot time_recorded = fields.BigIntField( default=datetime.datetime.utcnow().timestamp()) # event responsible for the creation of the record event = fields.CharField(max_length=40) holdings = fields.JSONField(null=True) positions = fields.JSONField(null=True) # unrealized PnL of positions positions_unrealized = fields.FloatField(default=0) # holdings - positions account_value = fields.FloatField() # margin margin = fields.FloatField(default=0) exposure = fields.JSONField(null=True) exchange: fields.ForeignKeyRelation[Exchange] = fields.ForeignKeyField( "models.Exchange", related_name="balance", to_field="name", from_field="exchange") def __str__(self) -> str: return f"Exchange {self.exchange}: {self.holdings}"
class Event(Model, state_machine.StateMachineMixin): STATE_ENUM = StateEnum ALIAS = state_alias name = fields.CharField(max_length=255, index=True) description = fields.TextField(null=True) categories = fields.ManyToManyField("models.Category", related_name="events", through="event_category") address = fields.CharField(max_length=500, null=True) longitude = fields.FloatField(null=True) latitude = fields.FloatField(null=True) start = fields.DatetimeField() end = fields.DatetimeField() user = fields.ForeignKeyField("models.User", related_name="user_events") followers = fields.ManyToManyField("models.User", related_name="follow_events", through="event_follow") state = fields.CharEnumField(StateEnum, max_length=40) def __str__(self): return self.name class Meta: table = "party_maker_events"
class UserOrder(Base): """用户订单表""" id = fields.IntField(pk=True) user = fields.ForeignKeyField("market.MarketUser", "orders", on_delete=fields.SET_NULL, null=True) product_id = fields.UUIDField(index=True) # 商品 ID product_type = fields.IntEnumField(ProductType) # 商品类型:1= 策略,2= 套餐,3=vip status = fields.IntEnumField(OrderStatus, default=OrderStatus.unpayed ) # 订单状态:1= 待支付,2= 支付成功,3= 支付失败,4= 取消支付 / 超时 total_cash = fields.FloatField(default=0) # 订单总金额 total_days = fields.IntField(default=0) # 订单总天数 coupon_days = fields.IntField(default=0) # 优惠券抵扣天数 coupon_cash = fields.FloatField(default=0) # 优惠券优惠金额 pay_cash = fields.FloatField(default=0) # 订单需支付金额 days = fields.IntField(default=0) # 购买时长 gift_days = fields.IntField(default=0) # 赠送时长 expire_dt = fields.DatetimeField(null=True) # 过期时间 create_dt = fields.DatetimeField(auto_now_add=True) # 创建时间 update_dt = fields.DatetimeField(auto_now=True) foreign_order_id = fields.CharField(max_length=32, default="") # 外部订单号 pay_id = fields.CharField(max_length=48, default="") # 支付平台订单号 pay_method = fields.IntEnumField(PayMethod, default=PayMethod.wechat) pay_url = fields.CharField(max_length=255, default="") # 支付链接(重新支付) pay_dt = fields.DatetimeField(null=True) # 支付时间 payed_cash = fields.FloatField(default=0) # 已支付金额 source = fields.CharField(max_length=32, default="default") # 订单来源:pc/mobile delete = fields.BooleanField(default=False) coupon = fields.JSONField(default=[]) # 使用的优惠券 product_snapshot = fields.JSONField(default={}) # 商品快照
class PlaceModel(BaseModel): class Meta: table = 'place' table_description = 'Represents place' restaurant: fields.ForeignKeyRelation[ RestaurantModel] = fields.ForeignKeyField( model_name='models.RestaurantModel', related_name='places') address = fields.CharField(max_length=300, description='Address of the place') longitude = fields.FloatField(description='Longitude of the place') latitude = fields.FloatField(description='Latitude of the place') gallery: fields.ReverseRelation["PlaceGalleryModel"] work_time_start = fields.CharField(default='', max_length=5, description='Place work time start') work_time_stop = fields.CharField(default='', max_length=5, description='Place work time start') preorder = fields.BooleanField(default=False, description='Preorder is allowed') tables: fields.ReverseRelation["TableModel"] rating = fields.IntField(description='Rating of the place', default=25) min_intervals_for_book = fields.IntField( description='Min number of intervals of 30 min for booking', default=1) max_intervals_for_book = fields.IntField( description='Max number of intervals of 30 min for booking', default=10)
class Trade(models.Model): # ==== FROM GRYPHON trade_id = fields.IntField(pk=True, unique=True) unique_id = fields.UUIDField(unique=True, default=uuid.uuid4().hex) exchange_id = fields.ForeignKeyField("models.Exchange") exchange_trade_id = fields.CharField(max_length=30, unique=True) time_created = fields.BigIntField( default=datetime.datetime.utcnow().timestamp()) trade_side = fields.CharField(max_length=5) pair = fields.CharField(max_length=10) price = fields.FloatField() volume = fields.FloatField() fee = fields.FloatField() slippage = fields.FloatField() leverage = fields.IntField(default=0) order_id: fields.ForeignKeyRelation[Order] = fields.ForeignKeyField( "models.Order", related_name="trade", to_field="order_id", from_field="trade") def __str__(self) -> str: return f"Trade {self.trade_id}: {self.price}"
class Botbakuadmin_beer(Model): style = fields.CharField(max_length=64) ibu = fields.SmallIntField() abv = fields.FloatField() og = fields.SmallIntField() country = fields.CharField(max_length=64) manufacturer = fields.CharField(max_length=64) size = fields.FloatField()
class StatisticsReport(Model): date = fields.DateField() rentals_started = fields.IntField() rentals_ended = fields.IntField() reservations_started = fields.IntField() reservations_cancelled = fields.IntField() distance_travelled = fields.FloatField() revenue = fields.FloatField()
class Cities(models.Model): id = fields.UUIDField(pk=True) codice_comune = fields.IntField(unique=True) distretto = fields.IntField() denominazione_comune = fields.CharField(unique=True, max_length=50) lat = fields.FloatField() long = fields.FloatField() tracked_days = fields.ReverseRelation["TrackedDays"]
class Cargo(Model): """Model representing single cargo""" id = fields.IntField(pk=True) date = fields.DateField(default=None) cargo_type = fields.CharField(max_length=100, default=None) declared_cost = fields.FloatField(default=None) insurance_cost = fields.FloatField(default=None, null=True)
class Data(models.Model): id = fields.IntField(pk=True) parameter = fields.CharField(max_length=8) location = fields.CharField(max_length=9) date = fields.DatetimeField() mean = fields.FloatField() upper = fields.FloatField() lower = fields.FloatField()
class Journal(Model): timestamp = fields.DatetimeField(auto_now_add=True) level = fields.SmallIntField(index=True) text = fields.CharField(max_length=255, index=True) col_float1 = fields.FloatField(default=2.2) col_smallint1 = fields.SmallIntField(default=2) col_int1 = fields.IntField(default=2000000) col_bigint1 = fields.BigIntField(default=99999999) col_char1 = fields.CharField(max_length=255, default="value1") col_text1 = fields.TextField( default="Moo,Foo,Baa,Waa,Moo,Foo,Baa,Waa,Moo,Foo,Baa,Waa") col_decimal1 = fields.DecimalField(12, 8, default=Decimal("2.2")) col_json1 = fields.JSONField(default={ "a": 1, "b": "b", "c": [2], "d": { "e": 3 }, "f": True }) col_float2 = fields.FloatField(null=True) col_smallint2 = fields.SmallIntField(null=True) col_int2 = fields.IntField(null=True) col_bigint2 = fields.BigIntField(null=True) col_char2 = fields.CharField(max_length=255, null=True) col_text2 = fields.TextField(null=True) col_decimal2 = fields.DecimalField(12, 8, null=True) col_json2 = fields.JSONField(null=True) col_float3 = fields.FloatField(default=2.2) col_smallint3 = fields.SmallIntField(default=2) col_int3 = fields.IntField(default=2000000) col_bigint3 = fields.BigIntField(default=99999999) col_char3 = fields.CharField(max_length=255, default="value1") col_text3 = fields.TextField( default="Moo,Foo,Baa,Waa,Moo,Foo,Baa,Waa,Moo,Foo,Baa,Waa") col_decimal3 = fields.DecimalField(12, 8, default=Decimal("2.2")) col_json3 = fields.JSONField(default={ "a": 1, "b": "b", "c": [2], "d": { "e": 3 }, "f": True }) col_float4 = fields.FloatField(null=True) col_smallint4 = fields.SmallIntField(null=True) col_int4 = fields.IntField(null=True) col_bigint4 = fields.BigIntField(null=True) col_char4 = fields.CharField(max_length=255, null=True) col_text4 = fields.TextField(null=True) col_decimal4 = fields.DecimalField(12, 8, null=True) col_json4 = fields.JSONField(null=True)
class Journal(Model): timestamp = fields.DatetimeField(auto_now_add=True) level = fields.SmallIntField(index=True) text = fields.CharField(max_length=255, index=True) col_float1 = fields.FloatField(default=2.2) col_smallint1 = fields.SmallIntField(default=2) col_int1 = fields.IntField(default=2000000) col_bigint1 = fields.BigIntField(default=99999999) col_char1 = fields.CharField(max_length=255, default='value1') col_text1 = fields.TextField( default='Moo,Foo,Baa,Waa,Moo,Foo,Baa,Waa,Moo,Foo,Baa,Waa') col_decimal1 = fields.DecimalField(12, 8, default=Decimal('2.2')) col_json1 = fields.JSONField(default={ 'a': 1, 'b': 'b', 'c': [2], 'd': { 'e': 3 }, 'f': True }) col_float2 = fields.FloatField(null=True) col_smallint2 = fields.SmallIntField(null=True) col_int2 = fields.IntField(null=True) col_bigint2 = fields.BigIntField(null=True) col_char2 = fields.CharField(max_length=255, null=True) col_text2 = fields.TextField(null=True) col_decimal2 = fields.DecimalField(12, 8, null=True) col_json2 = fields.JSONField(null=True) col_float3 = fields.FloatField(default=2.2) col_smallint3 = fields.SmallIntField(default=2) col_int3 = fields.IntField(default=2000000) col_bigint3 = fields.BigIntField(default=99999999) col_char3 = fields.CharField(max_length=255, default='value1') col_text3 = fields.TextField( default='Moo,Foo,Baa,Waa,Moo,Foo,Baa,Waa,Moo,Foo,Baa,Waa') col_decimal3 = fields.DecimalField(12, 8, default=Decimal('2.2')) col_json3 = fields.JSONField(default={ 'a': 1, 'b': 'b', 'c': [2], 'd': { 'e': 3 }, 'f': True }) col_float4 = fields.FloatField(null=True) col_smallint4 = fields.SmallIntField(null=True) col_int4 = fields.IntField(null=True) col_bigint4 = fields.BigIntField(null=True) col_char4 = fields.CharField(max_length=255, null=True) col_text4 = fields.TextField(null=True) col_decimal4 = fields.DecimalField(12, 8, null=True) col_json4 = fields.JSONField(null=True)
class Item(Model): id = fields.IntField(pk=True) geohash = fields.CharField(max_length=24, index=True) latitude = fields.FloatField() longitude = fields.FloatField() type = fields.CharField(max_length=24) content = fields.CharField(max_length=255) user = fields.ForeignKeyField("models.User") posted_at = fields.DatetimeField(auto_now_add=True)
class MonitoringStatus(models.Model): # Data stuff id = fields.IntField(pk=True) timestamp = fields.DatetimeField(auto_now_add=True) cpu = fields.FloatField() memory = fields.FloatField() # Relations monitoring: fields.ForeignKeyRelation[Monitoring] = fields.ForeignKeyField( "models.Monitoring", on_delete='CASCADE')
class QStrategy(Base): """ 上架策略详细信息 The User model """ product_id = fields.UUIDField(pk=True) sim_id = fields.IntField(index=True) user_id = fields.IntField(index=True) author_name = fields.CharField(max_length=32) task_id = fields.CharField(max_length=32, index=True) # 模拟交易的 ID sim_start_cash = fields.FloatField(default=0) # 模拟交易的初始资金 sim_start_dt = fields.DatetimeField() # 模拟交易的开始时间 sim_name = fields.CharField(max_length=128) bt_task_id = fields.CharField(max_length=32, index=True) # 回测的 ID # 状态:1= 上架审核中,2= 上架审核未通过,3= 正常,4= 下架审核中,5= 下架,6= 删除 status = fields.IntEnumField(ListStatus, default=1) market = fields.ForeignKeyField("market.StrategyMarket", "strategies", on_delete=fields.SET_NULL, null=True) package = fields.ForeignKeyField("market.StrategyPackage", "strategies", on_delete=fields.SET_NULL, null=True) name = fields.CharField(max_length=128) # 策略名称 buyout_price = fields.FloatField() # 买断价格 total_cnt = fields.IntField() # 总份数 category = fields.IntEnumField(QStrategyType, default=1) # 策略类型,1= 股票,2= 期货 style = fields.CharField(max_length=32, default="") # 策略风格 tags = fields.JSONField(defalt=[]) # 标签数组 ideas = fields.TextField(default="") # 策略思路 desc = fields.TextField(default="") # 描述 suit_money = fields.FloatField(default=10000000) # 适合资金 # package_name = fields.CharField(max_length=50) # 所属套餐 limit_copy = fields.IntField(default=100000) # 连续复制次数 limit_interval = fields.IntField(default=10000000) # 复制间隔 sell_cnt = fields.IntField(default=0) # 已销售数量 sell_cnt_show = fields.IntField(default=0) # 虚假的销量 create_dt = fields.DatetimeField(auto_now_add=True) # 最初申请上架时间 update_dt = fields.DatetimeField(auto_now=True) online_dt = fields.DatetimeField(null=True) offline_dt = fields.DatetimeField(null=True) view_cnt = fields.IntField(default=0) # 浏览次数 collect_cnt = fields.IntField(default=0) # 收藏次数 share_cnt = fields.IntField(default=0) # 分享次数 # 时段购买价格信息 [{"day": 20, "gift_day": 20, "price": 350}, ...] period_prices = fields.JSONField(default=[]) enable_discount = fields.BooleanField(default=True) # 折扣信息 [{"start_dt": xxx, "end_dt": xxx, "day": 10, "gift_day": 10, "price": 200}, ...] discount_info = fields.JSONField(default=[]) allow_coupon = fields.BooleanField(default=True) # 是否可使用优惠券
class EQLocationModel(Model): id = fields.IntField(pk=True) latitude = fields.FloatField() longitude = fields.FloatField() occurrence = fields.IntField() query_itme = fields.DatetimeField(auto_now_add=True) class Meta: table = 'earthquake' def __str__(self): return self.id
class UniLiq(Model): uni_id = fields.CharField(max_length=100, unique=True) tx_id = fields.CharField(max_length=66) add = fields.BooleanField() pair = fields.CharField(max_length=100, default="") timestamp = fields.BigIntField(default=0) from_user = fields.CharField(max_length=42) token0 = fields.ForeignKeyField("models.Token", related_name="lq_0") token0amount = fields.FloatField() token1 = fields.ForeignKeyField("models.Token", related_name="lq_1") token1amount = fields.FloatField() amount_usd = fields.FloatField() price_usd = fields.FloatField()
class qa(Model): id = fields.IntField(pk=True) question = fields.FloatField(source_field='question') answer = fields.FloatField(source_field='answer') created_at = fields.TextField(source_field='created_at') class Meta: table = "qa" table_description = "This table contains question and answer value" def __str__(self): return "question is square of {} and answer is {}.".format( self.question, self.answer)
class PlayerStats(Model): stats_id = fields.IntField(pk=True, generated=True) match = fields.ForeignKeyField('models.MatchData', related_name='player_stats') logstf = fields.ForeignKeyField('models.LogstfData', related_name='player_stats') player = fields.ForeignKeyField('models.Players', related_name='player_stats') team = fields.CharField(max_length=4) # I need to add win here as boolean # These need to be broken out into separate tables? # demoman = fields.BooleanField(default=False) # engineer = fields.BooleanField(default=False) # heavyweaponsguy = fields.BooleanField(default=False) # medic = fields.BooleanField(default=False) # pyro = fields.BooleanField(default=False) # scout = fields.BooleanField(default=False) # sniper = fields.BooleanField(default=False) # soldier = fields.BooleanField(default=False) # spy = fields.BooleanField(default=False) kills = fields.IntField() deaths = fields.IntField() assists = fields.IntField() suicides = fields.IntField() kapd = fields.FloatField() kpd = fields.FloatField() damage = fields.IntField() damage_real = fields.IntField() dt = fields.IntField() dt_real = fields.IntField() hr = fields.IntField() lks = fields.IntField() stat_as = fields.IntField() dapd = fields.IntField() dapm = fields.IntField() ubers = fields.IntField() drops = fields.IntField() medkits = fields.IntField() medkits_hp = fields.IntField() backstabs = fields.IntField() headshots = fields.IntField() headshots_hit = fields.IntField() sentries = fields.IntField() heal = fields.IntField() cpc = fields.IntField() ic = fields.IntField() class Meta: table = "stats" table_description = "Contains a players stats for each match" unique_together = ('logstf', 'player')
class CurrentFund(Model): id = fields.IntField(pk=True) code: fields.ForeignKeyRelation[FundDb] = fields.ForeignKeyField( 'models.FundDb', related_name='cf', to_field="code") # code = fields.TextField() # 基金代码 price = fields.FloatField() # 净值 cost = fields.FloatField() # 单位成本 nums = fields.FloatField() # 可用份额 created = fields.DatetimeField(auto_now_add=True) modify = fields.DatetimeField(auto_now_add=True) def __str__(self): return self.name
class Course(models.Model): """The course model.""" id = fields.UUIDField(pk=True) title = fields.CharField(max_length=100) overview = fields.TextField() cover = fields.CharField(null=True, max_length=500) video = fields.CharField(null=True, max_length=500) categories = fields.ManyToManyField("models.Category", related_name="courses") languages = fields.ManyToManyField("models.Language", related_name="courses") level = fields.CharEnumField(enum_type=Level, max_length=100) teacher = fields.ForeignKeyField( model_name="models.Teacher", related_name="courses", on_delete=fields.SET_NULL, null=True, ) price = fields.FloatField(default=0) discount = fields.FloatField(default=0) is_drift = fields.BooleanField(default=True) is_active = fields.BooleanField(default=True) slug = fields.CharField(unique=True, max_length=200) created_at = fields.DatetimeField(auto_now_add=True) updated_at = fields.DatetimeField(auto_now=True) class Meta: """Meta data.""" table = "course" def __str__(self: "Course") -> str: """The string representative for course class.""" return f"{self.title}"
class Tariff(Model): """Model for representing single tariff""" id = fields.IntField(pk=True) date = fields.DateField(default=None) cargo_type = fields.CharField(max_length=100, default=None) rate = fields.FloatField(default=None)
class PageInsightAbstractModel(InsightMixinModel, PageAttributesAbstractModel): m_date = fields.CharField(max_length=64, null=True, index=True) value = fields.FloatField(null=False) @staticmethod def parse_value(value: int) -> Dict[str, int]: return {"value": value}
class VenueInformation(Model): name = fields.CharField(max_length=128) capacity = fields.IntegerField() rent = fields.FloatField() team = fields.OneToOneField("models.Team", on_delete=fields.SET_NULL, null=True)
class Item(models.Model): """Модель items""" id = fields.IntField(pk=True) name = fields.CharField(max_length=100) description = fields.TextField(null=True) min_per = fields.IntField() max_per = fields.IntField() price = fields.FloatField() quantity = fields.IntField() date = fields.DatetimeField() # image = fields.CharField(max_length=1000) # owner: fields.ForeignKeyRelation['User'] = fields.ForeignKeyField( # 'models.User', related_name='items' # ) def min_price(self) -> float: return self.price + ((self.price * self.min_per)/100) def mid_price(self) -> float: mid = (self.max_per + self.min_per)/2 return self.price + ((self.price * mid)/100) def max_price(self) -> float: return self.price + ((self.price * self.max_per)/100) class PydanticMeta: computed = ("min_price", "mid_price", "max_price")
class Item(Model): date = fields.CharField(max_length=10) cargo_type = fields.CharField(max_length=255) rate = fields.FloatField(default=0.0) class Meta: table = 'Item_DB'
class StrategyPackage(Base): """套餐表""" product_id = fields.UUIDField(pk=True) name = fields.CharField(max_length=64, unique=True, index=True) market = fields.ForeignKeyField("market.StrategyMarket", "packages", on_delete=fields.SET_NULL, null=True) tags = fields.JSONField() desc = fields.TextField() status = fields.IntEnumField(ListStatus, default=1) # 套餐状态:1= 正常,2= 下架,3= 删除 limit_copy = fields.IntField() # 连续复制次数 limit_interval = fields.IntField() # 复制间隔 view_cnt = fields.IntField(default=0) # 浏览次数 collect_cnt = fields.IntField(default=0) # 收藏次数 share_cnt = fields.IntField(default=0) # 分享次数 buyout_price = fields.FloatField() # 买断价格 # 时段购买价格信息 [{"day": 20, "gift_day": 20, "price": 350}, ...] period_prices = fields.JSONField() enable_discount = fields.BooleanField(default=True) # 折扣信息 [{"start_dt": xxx, "end_dt": xxx, "day": 10, "gift_day": 10, "price": 200}, ...] discount_info = fields.JSONField() allow_coupon = fields.BooleanField() # 是否可使用优惠券 create_dt = fields.DatetimeField(auto_now_add=True) # 最初申请上架时间 update_dt = fields.DatetimeField(auto_now=True) online_dt = fields.DatetimeField(null=True) offline_dt = fields.DatetimeField(null=True) # reverse relations strategies: fields.ReverseRelation["market.models.QStrategy"]
class cm_item(Model): user_id = fields.BigIntField() added_at = fields.DateField() id = fields.BigIntField(generated=True, pk=True) rarity = fields.CharField(max_length=50, null=True) float = fields.FloatField() name = fields.CharField(max_length=2000) price = fields.BigIntField()
class VenueInformation(Model): name = fields.CharField(max_length=128) # This is just a comment #: No. of seats #: All this should not be part of the field description either! capacity = fields.IntField() rent = fields.FloatField() team = fields.OneToOneField("models.Team", on_delete=fields.SET_NULL, null=True)
class Movie(models.Model): movie_id = fields.IntField(pk=True) movie_name = fields.CharField(max_length=30) director = fields.CharField(max_length=30, null=True) imdb_score = fields.FloatField() popularity = fields.FloatField() movie_poster = fields.TextField() user = fields.ForeignKeyField("models.User", related_name="author", on_delete=fields.CASCADE) date_posted = fields.DatetimeField(auto_now_add=True) last_edited = fields.DatetimeField(auto_now=True) class Meta: # ordering = ['date_posted'] // acesending # ordering = ['-date_posted'] // decending ordering = ['-popularity']