2025-11-14 04:03:21 +00:00
|
|
|
from peewee import *
|
|
|
|
|
from settings import SQLITE_DB
|
|
|
|
|
|
|
|
|
|
database = SqliteDatabase(SQLITE_DB)
|
|
|
|
|
|
|
|
|
|
class BaseModel(Model):
|
|
|
|
|
class Meta:
|
|
|
|
|
database = database
|
|
|
|
|
|
2026-01-09 22:33:38 +00:00
|
|
|
#
|
|
|
|
|
# Order Configuration
|
|
|
|
|
#
|
|
|
|
|
class User(BaseModel):
|
|
|
|
|
telegram_username = TextField(unique=True)
|
|
|
|
|
telegram_chat_id = IntegerField()
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table_name = 'user'
|
|
|
|
|
|
|
|
|
|
class DomSubUsers(BaseModel):
|
|
|
|
|
dom = ForeignKeyField(column_name='dom_id', field='id', model=User)
|
|
|
|
|
sub = ForeignKeyField(column_name='sub_id', field='id', model=User)
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table_name = 'dom_sub'
|
|
|
|
|
indexes = (
|
|
|
|
|
(('dom_id', 'sub_id'), True),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
class OrdersPool(BaseModel):
|
|
|
|
|
name = TextField()
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table_name = 'orders_pool'
|
|
|
|
|
|
|
|
|
|
class Order(BaseModel):
|
|
|
|
|
name = TextField()
|
|
|
|
|
weight = IntegerField()
|
|
|
|
|
repeat = FloatField()
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table_name = 'order'
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Order State
|
|
|
|
|
#
|
2025-11-14 04:03:21 +00:00
|
|
|
class PunishmentStatus(BaseModel):
|
|
|
|
|
confirmed_at = DateTimeField(null=True) # TIMESTAMP
|
|
|
|
|
created_at = DateTimeField() # TIMESTAMP
|
|
|
|
|
mastodon_id = TextField()
|
|
|
|
|
text = TextField()
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table_name = 'punishment_status'
|
|
|
|
|
|
|
|
|
|
class OrderStatus(BaseModel):
|
|
|
|
|
confirmed_at = DateTimeField(null=True) # TIMESTAMP
|
|
|
|
|
created_at = DateTimeField() # TIMESTAMP
|
|
|
|
|
due_at = DateTimeField() # TIMESTAMP
|
|
|
|
|
mastodon_id = TextField()
|
|
|
|
|
punishment = ForeignKeyField(column_name='punishment_id', field='id', model=PunishmentStatus, null=True)
|
|
|
|
|
text = TextField()
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table_name = 'order_status'
|
|
|
|
|
|
|
|
|
|
class Repeat(BaseModel):
|
|
|
|
|
count = IntegerField(default=0)
|
|
|
|
|
orders = TextField()
|
|
|
|
|
probability = FloatField()
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table_name = 'repeat'
|
|
|
|
|
|
|
|
|
|
class SkipDay(BaseModel):
|
|
|
|
|
date = DateField(unique=True)
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table_name = 'skip_day'
|