crappy
This commit is contained in:
2
models/__init__.py
Normal file
2
models/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
from .auth import *
|
||||
from .deal import *
|
||||
12
models/auth.py
Normal file
12
models/auth.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from sqlalchemy import Column, Integer, BigInteger, String, Boolean
|
||||
|
||||
from models.base import BaseModel
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
__tablename__ = 'users'
|
||||
id = Column(Integer, autoincrement=True, primary_key=True, index=True)
|
||||
telegram_id = Column(BigInteger, nullable=False, index=True)
|
||||
phone_number = Column(String)
|
||||
|
||||
is_admin = Column(Boolean, nullable=False, default=False)
|
||||
3
models/base.py
Normal file
3
models/base.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from sqlalchemy.orm import declarative_base
|
||||
|
||||
BaseModel = declarative_base()
|
||||
41
models/deal.py
Normal file
41
models/deal.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from enum import IntEnum, unique
|
||||
|
||||
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from models.base import BaseModel
|
||||
|
||||
|
||||
@unique
|
||||
class DealStatus(IntEnum):
|
||||
AWAITING_ACCEPTANCE = 0
|
||||
PACKAGING = 1
|
||||
AWAITING_SHIPMENT = 2
|
||||
AWAITING_PAYMENT = 3
|
||||
COMPLETED = 4
|
||||
CANCELLED = 5
|
||||
|
||||
|
||||
class Deal(BaseModel):
|
||||
__tablename__ = 'deals'
|
||||
id = Column(Integer, autoincrement=True, primary_key=True, index=True)
|
||||
name = Column(String, nullable=False, comment='Название сделки')
|
||||
created_at = Column(DateTime, nullable=False, comment='Дата создания')
|
||||
current_status = Column(Integer, nullable=False, comment='Текущий статус')
|
||||
|
||||
status_history = relationship('DealStatusHistory', back_populates='deal')
|
||||
|
||||
|
||||
class DealStatusHistory(BaseModel):
|
||||
__tablename__ = 'deals_status_history'
|
||||
id = Column(Integer, autoincrement=True, primary_key=True, index=True)
|
||||
|
||||
deal_id = Column(Integer, ForeignKey('deals.id'), nullable=False, comment='ID сделки')
|
||||
deal = relationship('Deal', back_populates='status_history')
|
||||
|
||||
user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
|
||||
user = relationship('User')
|
||||
|
||||
changed_at = Column(DateTime, nullable=False, comment='Дата и время когда произошла смена статуса')
|
||||
from_status = Column(Integer, nullable=False, comment='Предыдущий статус')
|
||||
to_status = Column(Integer, nullable=False, comment='Новый статус')
|
||||
Reference in New Issue
Block a user