using Microsoft.EntityFrameworkCore; using PetCompanion.Data; using PetCompanion.Models; namespace PetCompanion.Repositories { public class PetInventoryRepository { private readonly ApplicationDbContext _context; public PetInventoryRepository(ApplicationDbContext context) { _context = context; } public Inventory GetPetInventory(string petId) { return _context.Inventories .FirstOrDefault(i => i.PetId == petId); } public Dictionary GetEquippedItems(string petId) { var equippedItems = _context.EquippedItems .Where(e => e.PetId == petId) .ToDictionary(e => e.EquipTarget, e => e.GameItemId); return equippedItems; } public void UpdateEquippedItems(string petId, Dictionary equippedItems) { var existingItems = _context.EquippedItems .Where(e => e.PetId == petId) .ToList(); _context.EquippedItems.RemoveRange(existingItems); var newEquippedItems = equippedItems.Select(kvp => new EquippedItem { PetId = petId, EquipTarget = kvp.Key, GameItemId = kvp.Value }); _context.EquippedItems.AddRangeAsync(newEquippedItems); _context.SaveChangesAsync(); } public Inventory SavePetInventory(Inventory inventory) { if (_context.Inventories.Any(i => i.PetId == inventory.PetId)) { _context.Inventories.Update(inventory); } else { _context.Inventories.Add(inventory); } _context.SaveChanges(); return inventory; } public Inventory UpdatePetInventory(Inventory inventory) { _context.Inventories.Update(inventory); _context.SaveChanges(); return inventory; } } }