from fastapi import APIRouter, HTTPException from app.services.server.prank import PrankService from app.models.server.prank import PrankCommandCreate, PrankCommandUpdate, PrankExecute router = APIRouter( prefix="/api/pranks", tags=["Pranks"] ) prank_service = PrankService() @router.get("/commands") async def get_all_prank_commands(): """Получение всех доступных команд-пакостей""" return await prank_service.get_all_prank_commands() @router.get("/commands/{command_id}") async def get_prank_command(command_id: str): """Получение команды-пакости по ID""" return await prank_service.get_prank_command(command_id) @router.post("/commands") async def add_prank_command(command: PrankCommandCreate): """Добавление новой команды-пакости""" return await prank_service.add_prank_command(command) @router.put("/commands/{command_id}") async def update_prank_command(command_id: str, update_data: PrankCommandUpdate): """Обновление команды-пакости""" return await prank_service.update_prank_command(command_id, update_data) @router.delete("/commands/{command_id}") async def delete_prank_command(command_id: str): """Удаление команды-пакости""" return await prank_service.delete_prank_command(command_id) @router.get("/servers") async def get_all_servers(): """Получение списка всех доступных серверов""" return await prank_service.get_all_servers() @router.get("/servers/{server_id}/players") async def get_server_online_players(server_id: str): """Получение списка онлайн игроков на сервере""" return await prank_service.get_server_online_players(server_id) @router.post("/execute") async def execute_prank(username: str, prank_data: PrankExecute): """Выполнение пакости (списание монет и выполнение команды)""" return await prank_service.execute_prank( username, prank_data.command_id, prank_data.target_player, prank_data.server_id )