48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
import datetime
|
|
|
|
from peewee import *
|
|
from .base import conn
|
|
|
|
|
|
# базовая можель от которой наследуются остальные
|
|
class BaseModel(Model):
|
|
class Meta:
|
|
database = conn
|
|
|
|
|
|
# модель пользователя
|
|
class User(BaseModel):
|
|
id = AutoField(column_name='UserId')
|
|
username = CharField(column_name='Username', max_length=100, null=False)
|
|
balance = FloatField(column_name='Balance', null=False, default=0)
|
|
|
|
class Meta:
|
|
table_name = 'User'
|
|
|
|
|
|
# модель транзакции
|
|
class Transaction(BaseModel):
|
|
id = AutoField(column_name='TransactionId')
|
|
type = CharField(column_name='TransactionType', max_length=10, null=False, default='incom')
|
|
sum = FloatField(column_name='TransactionSum', null=False, default=0)
|
|
user = ForeignKeyField(User, unique=False)
|
|
year = CharField(column_name='Year', max_length=10, default=datetime.datetime.now().strftime("%Y"))
|
|
month = CharField(column_name='month', max_length=10, default=datetime.datetime.now().strftime('%m'))
|
|
day = CharField(column_name='day', max_length=10, default=datetime.datetime.now().strftime('%d'))
|
|
time = TimeField(column_name='time', default=datetime.datetime.now())
|
|
category = TextField(column_name='category', default='None category')
|
|
|
|
class Meta:
|
|
table_name = 'Transaction'
|
|
|
|
|
|
class Check(BaseModel):
|
|
id = AutoField(column_name='id')
|
|
name = CharField(column_name='name', max_length=50, null=False, default='check')
|
|
balance = FloatField(column_name='balance', null=False, default=0)
|
|
user = ForeignKeyField(User, unique=False)
|
|
|
|
|
|
# создаю таблицы
|
|
conn.create_tables([User, Transaction])
|