add:bonus store

This commit is contained in:
2025-07-31 07:00:07 +05:00
parent 8c4db146c9
commit fa9611cc99
5 changed files with 374 additions and 4 deletions

41
app/api/bonuses.py Normal file
View File

@ -0,0 +1,41 @@
from fastapi import APIRouter, Query, Body
from fastapi import HTTPException
from datetime import datetime, timedelta
from app.models.bonus import PurchaseBonus
import uuid
router = APIRouter(
prefix="/api/bonuses",
tags=["Bonuses"]
)
@router.get("/effects")
async def get_user_effects(username: str):
"""Получить активные эффекты пользователя для плагина"""
from app.services.bonus import BonusService
return await BonusService().get_user_active_effects(username)
@router.get("/types")
async def get_bonus_types():
"""Получить доступные типы бонусов"""
from app.services.bonus import BonusService
return await BonusService().list_available_bonuses()
@router.get("/user/{username}")
async def get_user_bonuses(username: str):
"""Получить активные бонусы пользователя"""
from app.services.bonus import BonusService
return await BonusService().get_user_bonuses(username)
@router.post("/purchase")
async def purchase_bonus(purchase_bonus: PurchaseBonus):
"""Купить бонус"""
from app.services.bonus import BonusService
return await BonusService().purchase_bonus(purchase_bonus.username, purchase_bonus.bonus_type_id)
@router.post("/upgrade")
async def upgrade_user_bonus(username: str = Body(...), bonus_id: str = Body(...)):
"""Улучшить существующий бонус"""
from app.services.bonus import BonusService
return await BonusService().upgrade_bonus(username, bonus_id)