Add skill management system: implement Skill and PetSkill models, create SkillController, and update ApplicationDbContext for skills

This commit is contained in:
2025-02-02 15:30:48 -03:00
parent 06455db598
commit f234b5d84d
17 changed files with 543 additions and 749 deletions

View File

@@ -0,0 +1,43 @@
using Microsoft.AspNetCore.Mvc;
using PetCompanion.Services;
namespace PetCompanion.Controllers
{
[ApiController]
[Route("api/v1/[controller]")]
public class SkillController : ControllerBase
{
private readonly SkillService _skillService;
private readonly ILogger<SkillController> _logger;
private Guid userId = Guid.Parse("f5f4b3b3-3b7b-4b7b-8b7b-7b7b7b7b7b7b");
public SkillController(
ILogger<SkillController> logger,
SkillService skillService)
{
_logger = logger;
_skillService = skillService;
}
[HttpGet]
public async Task<IActionResult> GetAvailableSkills()
{
var skills = await _skillService.GetAvailableSkills();
return Ok(skills);
}
[HttpPost("{petId}/allocate/{skillId}")]
public async Task<IActionResult> AllocateSkillPoint(string petId, int skillId)
{
try
{
var result = await _skillService.AllocateSkillPoint(petId, userId.ToString(), skillId);
return Ok(result);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
}
}