Add files via upload

This commit is contained in:
Egor
2026-01-16 06:01:23 +03:00
committed by GitHub
parent a7303d765f
commit a32e3fc582
2 changed files with 39 additions and 0 deletions

View File

@@ -765,6 +765,7 @@ class Tariff(Base):
traffic_limit_gb = Column(Integer, nullable=False, default=100) # 0 = безлимит
device_limit = Column(Integer, nullable=False, default=1)
device_price_kopeks = Column(Integer, nullable=True, default=None) # Цена за доп. устройство (None = нельзя докупить)
max_device_limit = Column(Integer, nullable=True, default=None) # Макс. устройств (None = без ограничений)
# Сквады (серверы) доступные в тарифе
allowed_squads = Column(JSON, default=list) # список UUID сквадов

View File

@@ -5321,6 +5321,38 @@ async def create_tariff_promo_groups_table() -> bool:
return False
async def ensure_tariff_max_device_limit_column() -> bool:
"""Добавляет колонку max_device_limit в таблицу tariffs."""
try:
column_exists = await check_column_exists('tariffs', 'max_device_limit')
if column_exists:
logger.info(" Колонка max_device_limit в tariffs уже существует")
return True
async with engine.begin() as conn:
db_type = await get_database_type()
if db_type == 'sqlite':
await conn.execute(text(
"ALTER TABLE tariffs ADD COLUMN max_device_limit INTEGER NULL"
))
elif db_type == 'postgresql':
await conn.execute(text(
"ALTER TABLE tariffs ADD COLUMN max_device_limit INTEGER NULL"
))
else: # MySQL
await conn.execute(text(
"ALTER TABLE tariffs ADD COLUMN max_device_limit INT NULL"
))
logger.info("✅ Колонка max_device_limit добавлена в tariffs")
return True
except Exception as error:
logger.error(f"❌ Ошибка добавления колонки max_device_limit: {error}")
return False
async def add_subscription_tariff_id_column() -> bool:
"""Добавляет колонку tariff_id в таблицу subscriptions."""
try:
@@ -6554,6 +6586,12 @@ async def run_universal_migration():
else:
logger.warning("⚠️ Проблемы с колонкой device_price_kopeks в tariffs")
max_device_limit_ready = await ensure_tariff_max_device_limit_column()
if max_device_limit_ready:
logger.info("✅ Колонка max_device_limit в tariffs готова")
else:
logger.warning("⚠️ Проблемы с колонкой max_device_limit в tariffs")
server_traffic_limits_ready = await add_tariff_server_traffic_limits_column()
if server_traffic_limits_ready:
logger.info("✅ Колонка server_traffic_limits в tariffs готова")