first commit
This commit is contained in:
82
bot/database/db_models.py
Normal file
82
bot/database/db_models.py
Normal file
@@ -0,0 +1,82 @@
|
||||
# sqlalchemy
|
||||
from sqlalchemy.orm import declarative_base
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
Integer,
|
||||
String,
|
||||
BIGINT,
|
||||
VARCHAR,
|
||||
Boolean,
|
||||
DateTime,
|
||||
SmallInteger,
|
||||
ARRAY,
|
||||
DOUBLE_PRECISION,
|
||||
Enum,
|
||||
Numeric,
|
||||
Text,
|
||||
)
|
||||
from sqlalchemy.dialects.postgresql import JSONB
|
||||
|
||||
# types
|
||||
from database.db_types import *
|
||||
|
||||
|
||||
# init baseModel
|
||||
BaseModel = declarative_base()
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
|
||||
__tablename__ = "users"
|
||||
|
||||
user_id = Column(BIGINT, primary_key=True)
|
||||
username = Column(VARCHAR(33), nullable=True)
|
||||
fullname = Column(VARCHAR(128), nullable=False)
|
||||
register_date = Column(DateTime(timezone=True), nullable=False)
|
||||
|
||||
|
||||
class Admin(BaseModel):
|
||||
|
||||
__tablename__ = "admins"
|
||||
|
||||
user_id = Column(BIGINT, primary_key=True)
|
||||
username = Column(VARCHAR(33), nullable=True)
|
||||
fullname = Column(VARCHAR(128), nullable=False)
|
||||
|
||||
|
||||
class Blacklist(BaseModel):
|
||||
|
||||
__tablename__ = "blacklist"
|
||||
|
||||
user_id = Column(BIGINT, primary_key=True)
|
||||
|
||||
|
||||
class Setting(BaseModel):
|
||||
|
||||
__tablename__ = "settings"
|
||||
|
||||
name = Column(String, primary_key=True)
|
||||
value = Column(JSONB, nullable=True)
|
||||
|
||||
|
||||
class Payment(BaseModel):
|
||||
|
||||
__tablename__ = "payments"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
order_id = Column(VARCHAR(64), unique=True, nullable=False, index=True)
|
||||
user_id = Column(BIGINT, nullable=False, index=True)
|
||||
amount = Column(Numeric(12, 2), nullable=False)
|
||||
currency = Column(VARCHAR(3), nullable=False, default="RUB")
|
||||
description = Column(VARCHAR(255), nullable=True)
|
||||
status = Column(VARCHAR(32), nullable=False, default="created")
|
||||
payment_link_id = Column(VARCHAR(36), nullable=True)
|
||||
payment_url = Column(Text, nullable=True)
|
||||
payment_link_status = Column(VARCHAR(32), nullable=True)
|
||||
transaction_id = Column(VARCHAR(36), nullable=True)
|
||||
transaction_status = Column(VARCHAR(32), nullable=True)
|
||||
error_code = Column(VARCHAR(64), nullable=True)
|
||||
error_description = Column(Text, nullable=True)
|
||||
created_at = Column(DateTime(timezone=True), nullable=False)
|
||||
updated_at = Column(DateTime(timezone=True), nullable=False)
|
||||
paid_at = Column(DateTime(timezone=True), nullable=True)
|
||||
Reference in New Issue
Block a user