using Data.SeaHavenIndustries; namespace SeaHaven.DataServices.Interfaces { public interface IAccountDataService { Task GetByIdAsync(int id); Task GetByIdWithDetailsAsync(int id); Task> GetAllAsync(); Task<(IEnumerable Items, int TotalCount)> GetPagedAsync(int page, int pageSize, string? search = null); Task AddAsync(Accounts account); Task UpdateAsync(Accounts account); Task DeleteAsync(int id); Task ExistsAsync(int id); Task ExistsActiveAsync(int id, CancellationToken cancellationToken = default); Task CountAsync(); /// /// 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. /// Task TryGetUniqueActiveIdByExactNameAsync( string? name, CancellationToken cancellationToken = default); } }