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 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); } } }