Created API Controllers (#1)

Removed strongly typed inventory objects

Added EAV inventory types

Added EAV object handling philosophy

Added controllers

Added EF Core migration integration

Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
2026-05-02 19:24:06 -05:00
parent 4674529b91
commit 0b357e1e13
47 changed files with 1252 additions and 219 deletions
@@ -1,17 +0,0 @@
using WyvernInventory.Core.Interfaces.Repos;
using WyvernInventory.Core.Interfaces.Services;
using WyvernInventory.Core.Models;
namespace WyvernInventory.Infrastructure.Services;
public class GenericInventoryItemService(IDbObjectRepo<GenericInventoryItem> dbRepo)
: IDataObjectService<GenericInventoryItem>
{
private readonly IDbObjectRepo<GenericInventoryItem> _dbRepo = dbRepo;
public async Task<List<GenericInventoryItem>> GetAsync(Predicate<GenericInventoryItem>? filter = null) => await _dbRepo.GetAsync(filter);
public async Task<(int created, int updated)> UpsertAsync(List<GenericInventoryItem> items) => await _dbRepo.UpsertAsync(items);
public async Task DeleteAsync(List<GenericInventoryItem> items) => await _dbRepo.DeleteAsync(items);
}
@@ -0,0 +1,16 @@
using WyvernInventory.Core.Interfaces.Repos;
using WyvernInventory.Core.Interfaces.Services;
using WyvernInventory.Core.Models;
namespace WyvernInventory.Infrastructure.Services;
public class InventoryItemService(IInventoryItemRepo repo) : IInventoryItemService
{
private IInventoryItemRepo _repo = repo;
public async Task<List<InventoryItemDto>> GetAsync(List<InventoryItemRequest>? filter = null) => await _repo.GetAsync(filter);
public async Task<(int created, int updated)> UpsertAsync(List<InventoryItemRequest> items) => await _repo.UpsertAsync(items);
public async Task<int> DeleteAsync(List<InventoryItemRequest> items) => await _repo.DeleteAsync(items);
}
@@ -0,0 +1,16 @@
using WyvernInventory.Core.Interfaces.Repos;
using WyvernInventory.Core.Interfaces.Services;
using WyvernInventory.Core.Models;
namespace WyvernInventory.Infrastructure.Services;
public class InventoryTypeService(IDbObjectRepo<InventoryType, InventoryTypeDto> repo) : IDataObjectService<InventoryType, InventoryTypeDto>
{
private IDbObjectRepo<InventoryType, InventoryTypeDto> _repo = repo;
public async Task<List<InventoryTypeDto>> GetAsync(List<InventoryType>? filter = null) => await _repo.GetAsync(filter);
public async Task<(int created, int updated)> UpsertAsync(List<InventoryType> items) => await _repo.UpsertAsync(items);
public async Task<int> DeleteAsync(List<InventoryType> items) => await _repo.DeleteAsync(items);
}