Add models.py #TODO
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
from sqlalchemy import Column, BigInteger, Float, Text, Boolean, ForeignKey
|
||||||
|
from sqlalchemy.orm import declarative_base, relationship
|
||||||
|
|
||||||
|
Base = declarative_base()
|
||||||
|
|
||||||
|
class Connection(Base):
|
||||||
|
"""
|
||||||
|
Модель для таблицы connections
|
||||||
|
"""
|
||||||
|
__tablename__ = 'connections'
|
||||||
|
|
||||||
|
tg_id = Column(BigInteger, primary_key=True, nullable=False)
|
||||||
|
balance = Column(Float, nullable=False, default=0.0)
|
||||||
|
trial = Column(BigInteger, nullable=False, default=0)
|
||||||
|
|
||||||
|
# Связь с ключами и рефералами
|
||||||
|
keys = relationship('Key', back_populates='connection')
|
||||||
|
referrals_received = relationship('Referral', foreign_keys='Referral.referred_tg_id', back_populates='referred')
|
||||||
|
referrals_sent = relationship('Referral', foreign_keys='Referral.referrer_tg_id', back_populates='referrer')
|
||||||
|
|
||||||
|
|
||||||
|
class Key(Base):
|
||||||
|
"""
|
||||||
|
Модель для таблицы keys
|
||||||
|
"""
|
||||||
|
__tablename__ = 'keys'
|
||||||
|
|
||||||
|
tg_id = Column(BigInteger, ForeignKey('connections.tg_id'), primary_key=True, nullable=False)
|
||||||
|
client_id = Column(Text, primary_key=True, nullable=False)
|
||||||
|
email = Column(Text, nullable=False)
|
||||||
|
created_at = Column(BigInteger, nullable=False)
|
||||||
|
expiry_time = Column(BigInteger, nullable=False)
|
||||||
|
key = Column(Text, nullable=False)
|
||||||
|
server_id = Column(Text, nullable=False, default='server1')
|
||||||
|
notified = Column(Boolean, nullable=False, default=False)
|
||||||
|
notified_24h = Column(Boolean, nullable=False, default=False)
|
||||||
|
|
||||||
|
# Связь с подключением
|
||||||
|
connection = relationship('Connection', back_populates='keys')
|
||||||
|
|
||||||
|
|
||||||
|
class Referral(Base):
|
||||||
|
"""
|
||||||
|
Модель для таблицы referrals
|
||||||
|
"""
|
||||||
|
__tablename__ = 'referrals'
|
||||||
|
|
||||||
|
referred_tg_id = Column(BigInteger, ForeignKey('connections.tg_id'), primary_key=True, nullable=False)
|
||||||
|
referrer_tg_id = Column(BigInteger, ForeignKey('connections.tg_id'), nullable=False)
|
||||||
|
reward_issued = Column(Boolean, default=False)
|
||||||
|
|
||||||
|
# Связи с подключениями
|
||||||
|
referred = relationship('Connection', foreign_keys=[referred_tg_id], back_populates='referrals_received')
|
||||||
|
referrer = relationship('Connection', foreign_keys=[referrer_tg_id], back_populates='referrals_sent')
|
||||||
+2
-1
@@ -27,4 +27,5 @@ yarl==1.15.5
|
|||||||
yookassa==3.3.0
|
yookassa==3.3.0
|
||||||
loguru
|
loguru
|
||||||
aiocryptopay
|
aiocryptopay
|
||||||
py3xui
|
py3xui
|
||||||
|
sqlalchemy
|
||||||
Reference in New Issue
Block a user