custom trial time

This commit is contained in:
Vladless
2024-11-13 18:51:25 +03:00
parent bd699b5700
commit 545ceac0b8
3 changed files with 33 additions and 17 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ from datetime import datetime
import asyncpg import asyncpg
from loguru import logger from loguru import logger
from config import DATABASE_URL, BONUS_PERCENT from config import BONUS_PERCENT, DATABASE_URL
async def init_db(): async def init_db():
+2 -2
View File
@@ -6,7 +6,7 @@ import asyncpg
from py3xui import AsyncApi from py3xui import AsyncApi
from client import add_client from client import add_client
from config import ADMIN_PASSWORD, ADMIN_USERNAME, DATABASE_URL, PUBLIC_LINK, SERVERS from config import ADMIN_PASSWORD, ADMIN_USERNAME, DATABASE_URL, PUBLIC_LINK, SERVERS, TRIAL_TIME
from database import store_key from database import store_key
from handlers.texts import INSTRUCTIONS from handlers.texts import INSTRUCTIONS
from handlers.utils import generate_random_email from handlers.utils import generate_random_email
@@ -39,7 +39,7 @@ async def generate_and_store_keys(
conn = await asyncpg.connect(DATABASE_URL) conn = await asyncpg.connect(DATABASE_URL)
try: try:
current_time = datetime.utcnow() current_time = datetime.utcnow()
expiry_time = current_time + timedelta(days=1, hours=3) expiry_time = current_time + timedelta(days={TRIAL_TIME}, hours=3)
expiry_timestamp = int(expiry_time.timestamp() * 1000) expiry_timestamp = int(expiry_time.timestamp() * 1000)
tasks = [] tasks = []
+30 -14
View File
@@ -1,54 +1,70 @@
from sqlalchemy import Column, BigInteger, Float, Text, Boolean, ForeignKey from sqlalchemy import BigInteger, Boolean, Column, Float, ForeignKey, Text
from sqlalchemy.orm import declarative_base, relationship from sqlalchemy.orm import declarative_base, relationship
Base = declarative_base() Base = declarative_base()
class Connection(Base): class Connection(Base):
""" """
Модель для таблицы connections Модель для таблицы connections
""" """
__tablename__ = 'connections'
__tablename__ = "connections"
tg_id = Column(BigInteger, primary_key=True, nullable=False) tg_id = Column(BigInteger, primary_key=True, nullable=False)
balance = Column(Float, nullable=False, default=0.0) balance = Column(Float, nullable=False, default=0.0)
trial = Column(BigInteger, nullable=False, default=0) trial = Column(BigInteger, nullable=False, default=0)
# Связь с ключами и рефералами # Связь с ключами и рефералами
keys = relationship('Key', back_populates='connection') keys = relationship("Key", back_populates="connection")
referrals_received = relationship('Referral', foreign_keys='Referral.referred_tg_id', back_populates='referred') referrals_received = relationship(
referrals_sent = relationship('Referral', foreign_keys='Referral.referrer_tg_id', back_populates='referrer') "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): class Key(Base):
""" """
Модель для таблицы keys Модель для таблицы keys
""" """
__tablename__ = 'keys'
tg_id = Column(BigInteger, ForeignKey('connections.tg_id'), primary_key=True, nullable=False) __tablename__ = "keys"
tg_id = Column(
BigInteger, ForeignKey("connections.tg_id"), primary_key=True, nullable=False
)
client_id = Column(Text, primary_key=True, nullable=False) client_id = Column(Text, primary_key=True, nullable=False)
email = Column(Text, nullable=False) email = Column(Text, nullable=False)
created_at = Column(BigInteger, nullable=False) created_at = Column(BigInteger, nullable=False)
expiry_time = Column(BigInteger, nullable=False) expiry_time = Column(BigInteger, nullable=False)
key = Column(Text, nullable=False) key = Column(Text, nullable=False)
server_id = Column(Text, nullable=False, default='server1') server_id = Column(Text, nullable=False, default="server1")
notified = Column(Boolean, nullable=False, default=False) notified = Column(Boolean, nullable=False, default=False)
notified_24h = Column(Boolean, nullable=False, default=False) notified_24h = Column(Boolean, nullable=False, default=False)
# Связь с подключением # Связь с подключением
connection = relationship('Connection', back_populates='keys') connection = relationship("Connection", back_populates="keys")
class Referral(Base): class Referral(Base):
""" """
Модель для таблицы referrals Модель для таблицы referrals
""" """
__tablename__ = 'referrals'
referred_tg_id = Column(BigInteger, ForeignKey('connections.tg_id'), primary_key=True, nullable=False) __tablename__ = "referrals"
referrer_tg_id = Column(BigInteger, ForeignKey('connections.tg_id'), nullable=False)
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) reward_issued = Column(Boolean, default=False)
# Связи с подключениями # Связи с подключениями
referred = relationship('Connection', foreign_keys=[referred_tg_id], back_populates='referrals_received') referred = relationship(
referrer = relationship('Connection', foreign_keys=[referrer_tg_id], back_populates='referrals_sent') "Connection", foreign_keys=[referred_tg_id], back_populates="referrals_received"
)
referrer = relationship(
"Connection", foreign_keys=[referrer_tg_id], back_populates="referrals_sent"
)