shoc-backend/SeaHaven.DataServices/Interfaces/IAccountDataService.cs
Arthur Bassi 1edcf479ae fix(work-orders): apply account scope across create and reads [SH-221]
Stamp WorkOrder.AccountId on all create paths and filter board/list/search/detail by server-derived account claims so scoped callers cannot cross accounts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 10:45:37 -03:00

25 lines
979 B
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<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);
}
}