mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 11:53:12 +00:00
Reject soft-deleted accounts and stop account-scoped callers from assigning or stealing locations across tenants.
26 lines
1 KiB
C#
26 lines
1 KiB
C#
using Data.SeaHavenIndustries;
|
|
|
|
namespace SeaHaven.DataServices.Interfaces
|
|
{
|
|
public interface IAccountDataService
|
|
{
|
|
Task<Accounts?> GetByIdAsync(int id);
|
|
Task<Accounts?> GetByIdWithDetailsAsync(int id);
|
|
Task<IEnumerable<Accounts>> GetAllAsync();
|
|
Task<(IEnumerable<Accounts> Items, int TotalCount)> GetPagedAsync(int page, int pageSize, string? search = null);
|
|
Task<Accounts> AddAsync(Accounts account);
|
|
Task UpdateAsync(Accounts account);
|
|
Task DeleteAsync(int id);
|
|
Task<bool> ExistsAsync(int id);
|
|
Task<bool> ExistsActiveAsync(int id, CancellationToken cancellationToken = default);
|
|
Task<int> CountAsync();
|
|
|
|
/// <summary>
|
|
/// Returns the id when exactly one non-deleted account has this exact Name
|
|
/// (same rule as SH-221 backfill). Null when name is blank, zero matches, or ambiguous.
|
|
/// </summary>
|
|
Task<int?> TryGetUniqueActiveIdByExactNameAsync(
|
|
string? name,
|
|
CancellationToken cancellationToken = default);
|
|
}
|
|
}
|