2022-03-07 13:38:53 +00:00
|
|
|
|
namespace VoidCat.Services.Abstractions;
|
|
|
|
|
|
2022-06-13 10:29:16 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Simple CRUD interface for data stores
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="T"></typeparam>
|
2022-03-07 13:38:53 +00:00
|
|
|
|
public interface IBasicStore<T>
|
|
|
|
|
{
|
2022-06-13 10:29:16 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Get a single item from the store
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <returns></returns>
|
2022-03-07 13:38:53 +00:00
|
|
|
|
ValueTask<T?> Get(Guid id);
|
|
|
|
|
|
2022-06-13 10:29:16 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Get multiple items from the store
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="ids"></param>
|
|
|
|
|
/// <returns></returns>
|
2022-06-06 21:51:25 +00:00
|
|
|
|
ValueTask<IReadOnlyList<T>> Get(Guid[] ids);
|
|
|
|
|
|
2022-06-13 10:29:16 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Add an item to the store
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
ValueTask Add(Guid id, T obj);
|
2022-03-07 13:38:53 +00:00
|
|
|
|
|
2022-06-13 10:29:16 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Delete an item from the store
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <returns></returns>
|
2022-03-07 13:38:53 +00:00
|
|
|
|
ValueTask Delete(Guid id);
|
|
|
|
|
}
|