обработка вопросов
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
from sqlalchemy.orm import Session
|
||||
from datetime import datetime, timedelta
|
||||
from tg_bot.infrastructure.database.models import UserModel
|
||||
|
||||
|
||||
class UserService:
|
||||
|
||||
def __init__(self, session: Session):
|
||||
self.session = session
|
||||
|
||||
async def activate_premium(self, telegram_id: int) -> bool:
|
||||
try:
|
||||
user = self.session.query(UserModel) \
|
||||
.filter(UserModel.telegram_id == str(telegram_id)) \
|
||||
.first()
|
||||
if user:
|
||||
user.is_premium = True
|
||||
if user.premium_until and user.premium_until > datetime.now():
|
||||
user.premium_until = user.premium_until + timedelta(days=30)
|
||||
else:
|
||||
user.premium_until = datetime.now() + timedelta(days=30)
|
||||
self.session.commit()
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"Error activating premium: {e}")
|
||||
self.session.rollback()
|
||||
return False
|
||||
Reference in New Issue
Block a user