28 lines
1.2 KiB
Python
28 lines
1.2 KiB
Python
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.orm import Session
|
|
from backend.repository.db_init import get_db
|
|
from backend.schemas.game_schema import (
|
|
AncestorDeathCreate,
|
|
DeathRecordRequest,
|
|
AncestorDeathResponse,
|
|
DialogueResponse,
|
|
SkillCreateRequest,
|
|
SkillCreateResponse
|
|
)
|
|
from backend.services import game_service
|
|
|
|
router = APIRouter(prefix="/api/game", tags=["Game"])
|
|
|
|
@router.post("/death", response_model=AncestorDeathResponse)
|
|
def record_death(req: DeathRecordRequest, db: Session = Depends(get_db)):
|
|
return game_service.create_death_history(db=db, cause_of_death=req.cause_of_death)
|
|
|
|
@router.get("/npc-dialogue", response_model=DialogueResponse)
|
|
def get_npc_dialogue(current_generation: int = Query(..., description="현재 플레이어 세대"), db: Session = Depends(get_db)):
|
|
dialogue_text = game_service.generate_npc_dialogue(db=db, current_generation=current_generation)
|
|
return DialogueResponse(dialogue=dialogue_text)
|
|
|
|
@router.post("/generate-skill", response_model=SkillCreateResponse)
|
|
def create_skill(req: SkillCreateRequest):
|
|
return game_service.generate_ai_skill(prompt=req.prompt, player_level=req.player_level)
|