FILE / ScuroNeko/KuroCore
kurocore/utils/database/models.py
Исходный файл и его история в репозитории.
174 lines
4.2 KiB
Python
174 lines
4.2 KiB
Python
from peewee import Model, IntegerField, BigIntegerField, DecimalField, TextField, ForeignKeyField, DateTimeField, \
|
|
BooleanField, CompositeKey, CharField, AutoField
|
|
|
|
# from plugins import models
|
|
from utils.database.database import Database
|
|
|
|
|
|
class BaseModel(Model):
|
|
class Meta:
|
|
database = Database.db
|
|
|
|
|
|
class Groups(BaseModel):
|
|
id = IntegerField(null=False)
|
|
name = TextField(default='')
|
|
is_vip = BooleanField(default=False)
|
|
is_admin = BooleanField(default=False)
|
|
is_tester = BooleanField(default=False)
|
|
multiplier = DecimalField(default=1)
|
|
sale = DecimalField(default=1)
|
|
max_multigen = IntegerField(default=3)
|
|
|
|
|
|
class Works(BaseModel):
|
|
id = IntegerField(null=False)
|
|
name = TextField(default='')
|
|
required_lvl = IntegerField(default=1)
|
|
money_income = DecimalField(default=0)
|
|
min_exp = IntegerField(default=0)
|
|
max_exp = IntegerField(default=0)
|
|
|
|
|
|
class Fractions(BaseModel):
|
|
id = IntegerField()
|
|
name = TextField(default='Без названия', null=False)
|
|
owner_id = IntegerField(null=False)
|
|
money = DecimalField()
|
|
exp = IntegerField()
|
|
level = IntegerField()
|
|
|
|
|
|
class Auto(BaseModel):
|
|
id = IntegerField()
|
|
name = TextField()
|
|
price = DecimalField()
|
|
|
|
class Meta:
|
|
table_name = 'shop_auto'
|
|
|
|
|
|
class Business(BaseModel):
|
|
id = IntegerField()
|
|
name = TextField()
|
|
price = DecimalField()
|
|
income = DecimalField()
|
|
|
|
class Meta:
|
|
table_name = 'shop_business'
|
|
|
|
|
|
class Maid(BaseModel):
|
|
id = IntegerField()
|
|
name = TextField()
|
|
price = DecimalField()
|
|
income = DecimalField()
|
|
|
|
class Meta:
|
|
table_name = 'shop_maid'
|
|
|
|
|
|
class Miner(BaseModel):
|
|
id = IntegerField()
|
|
name = TextField()
|
|
price = DecimalField()
|
|
income = DecimalField()
|
|
|
|
class Meta:
|
|
table_name = 'shop_miner'
|
|
|
|
|
|
class Users(BaseModel):
|
|
id = IntegerField()
|
|
user_id = BigIntegerField()
|
|
|
|
name = TextField()
|
|
greeting = TextField()
|
|
pair = IntegerField()
|
|
donat = IntegerField()
|
|
|
|
balance = DecimalField(default=10000, max_digits=20)
|
|
invested = DecimalField(default=0, max_digits=20)
|
|
btc = DecimalField(default=0, max_digits=20, decimal_places=6)
|
|
level = IntegerField()
|
|
exp = DecimalField(default=0)
|
|
|
|
group_id = IntegerField()
|
|
group = ForeignKeyField(Groups)
|
|
fraction = ForeignKeyField(Fractions, null=True, lazy_load=True)
|
|
|
|
work = ForeignKeyField(Works)
|
|
work_time = DateTimeField()
|
|
|
|
income_time = DateTimeField()
|
|
|
|
auto = ForeignKeyField(Auto)
|
|
business = ForeignKeyField(Business)
|
|
maid = ForeignKeyField(Maid)
|
|
miner = ForeignKeyField(Miner)
|
|
|
|
subscribed = BooleanField()
|
|
|
|
|
|
class Reports(BaseModel):
|
|
id = IntegerField(unique=True, null=False, primary_key=True)
|
|
text = TextField(null=False)
|
|
admin_answer = TextField(null=True)
|
|
from_id = BigIntegerField(null=False)
|
|
date = DateTimeField()
|
|
status = CharField(null=False)
|
|
attachments = TextField(null=True)
|
|
|
|
|
|
class FractionMember(BaseModel):
|
|
fraction = ForeignKeyField(Fractions)
|
|
user = ForeignKeyField(Users)
|
|
is_moderator = BooleanField()
|
|
is_admin = BooleanField()
|
|
|
|
class Meta:
|
|
table_name = 'fraction_member'
|
|
primary_key = CompositeKey('fraction', 'user')
|
|
|
|
|
|
# WD
|
|
class WDModels(BaseModel):
|
|
model_id = IntegerField(null=False)
|
|
name = TextField(null=False)
|
|
image = TextField(null=False)
|
|
description = TextField(null=False)
|
|
|
|
class Meta:
|
|
table_name = 'wd_models'
|
|
|
|
|
|
class WDUsers(BaseModel):
|
|
user_id = IntegerField(null=False)
|
|
model = ForeignKeyField(WDModels)
|
|
model_id = IntegerField(null=False, default=1)
|
|
orientation = TextField(null=False, default='PORTRAIT')
|
|
|
|
class Meta:
|
|
table_name = 'wd_users'
|
|
primary_key = CompositeKey('user_id', 'model_id')
|
|
|
|
|
|
class WDLoras(BaseModel):
|
|
id = IntegerField(null=False)
|
|
name = TextField(null=False, default='NOT SET')
|
|
trigger_prompt = TextField(null=False, default='')
|
|
prompt_mixin = TextField(null=False, default='')
|
|
|
|
class Meta:
|
|
table_name = 'wd_loras'
|
|
primary_key = CompositeKey('id', 'trigger_prompt')
|
|
|
|
|
|
class WDPrompts(BaseModel):
|
|
id = AutoField(null=False)
|
|
user_id = IntegerField(null=False)
|
|
prompt = TextField(null=False)
|
|
|
|
class Meta:
|
|
table_name = 'wd_prompts'
|