54 lines
1.5 KiB
C#

using pet_companion_api.Models;
using pet_companion_api.Repositories;
namespace pet_companion_api.Services
{
public class PetService
{
private readonly PetRepository petRepository;
public PetService(PetRepository petRepository)
{
this.petRepository = petRepository;
}
public IEnumerable<Pet> GetAllPets(Guid userId)
{
return petRepository.GetPetsByUserId(userId.ToString());
}
public Pet CreatePet(Guid userId, PetCreationRequest petRequest)
{
var pet = new Pet
{
Id = Guid.NewGuid().ToString(),
UserId = userId.ToString(),
Name = petRequest.Name,
Class = petRequest.Class,
Level = 1,
Stats = PetStats.BuildFromClass(petRequest.Class),
Resources = new Resources(),
ActionSince = DateTime.UtcNow,
PetAction = PetAction.IDLE,
IsDead = false
};
return petRepository.CreatePet(pet);
}
public Pet UpdatePetAction(string petId, string userId, PetUpdateActionRequest actionRequest)
{
var pet = petRepository.GetPetById(petId, userId);
if (pet == null)
{
throw new Exception("Pet not found");
}
pet.PetAction = actionRequest.PetAction;
pet.ActionSince = DateTime.UtcNow;
return petRepository.UpdatePetAction(pet);
}
}
}