diff --git a/handlers/verification.py b/handlers/verification.py index 7f7f241..a882cc8 100644 --- a/handlers/verification.py +++ b/handlers/verification.py @@ -197,16 +197,33 @@ async def process_verification(message: Message, apartment: str): session.add(user) else: logger.info(f'Пользователь найден: verified={user.verified}, apartment={user.apartment}') + # Если уже верифицирован if user.verified: - await message.answer( - f'✅ Вы уже верифицированы (кв. {user.apartment})\n\n' - 'Если нужно изменить квартиру, обратитесь к администратору.', - parse_mode='HTML' - ) - return - - # Обновляем квартиру + # Но квартиры нет — сохраняем! + if not user.apartment: + user.apartment = apartment_upper + await session.commit() + logger.info(f'Сохранена квартира для верифицированного: {apartment_upper}') + + await message.answer( + f'✅ Квартира сохранена!\n\n' + f'Квартира: {apartment_upper}\n\n' + f'Вы уже были верифицированы.\n' + f'Теперь ваша квартира привязана к аккаунту!', + parse_mode='HTML' + ) + return + else: + # Уже есть квартира + await message.answer( + f'✅ Вы уже верифицированы (кв. {user.apartment})\n\n' + 'Если нужно изменить квартиру, обратитесь к администратору.', + parse_mode='HTML' + ) + return + + # Обновляем квартиру для неверифицированных user.apartment = apartment_upper # Создаём заявку на верификацию (если ещё нет активной) diff --git a/web/app.py b/web/app.py index c63526b..348ccc0 100644 --- a/web/app.py +++ b/web/app.py @@ -158,13 +158,19 @@ async def users_page(request: Request, search: str = "", filter: str = "", usern @app.post("/api/users/auto_verify") async def api_auto_verify_users(username: str = Depends(get_current_admin)): - """Автоверификация активных пользователей""" + """Автоверификация активных пользователей (ТОЛЬКО с квартирой!)""" async with AsyncSessionLocal() as session: # Находим активных (50+ сообщений) которые не верифицированы - stmt = select(User).where(User.verified == False, User.message_count >= 50) + # И у которых УЖЕ ЕСТЬ квартира! + stmt = select(User).where( + User.verified == False, + User.message_count >= 50, + User.apartment != None, + User.apartment != '' + ) result = await session.execute(stmt) active_users = list(result.scalars().all()) - + # Верифицируем всех verified_count = 0 for user in active_users: @@ -172,10 +178,10 @@ async def api_auto_verify_users(username: str = Depends(get_current_admin)): if not user.verification_date: user.verification_date = datetime.utcnow() verified_count += 1 - + await session.commit() - - return JSONResponse({"success": True, "message": f"Верифицировано {verified_count} активных пользователей"}) + + return JSONResponse({"success": True, "message": f"Верифицировано {verified_count} активных пользователей с квартирой"}) @app.post("/api/user/{user_id}/update")