using Data.SeaHavenIndustries; using SeaHaven.DataServices.Dto; namespace SeaHaven.DataServices.Interfaces { public interface IUserDataService { Task GetByIdAsync(string id); Task> GetAllAsync(); Task GetByEmailAsync(string email); Task ExistsAsync(string id); Task> GetAllForListAsync(CancellationToken cancellationToken); Task GetProfileAsync(string id, CancellationToken cancellationToken); Task UpdateProfileAsync(string id, string? name, string? email, string? contact, CancellationToken cancellationToken); Task GetForEditAsync(string id, CancellationToken cancellationToken); Task IsAccountOwnerAsync(string userId, CancellationToken cancellationToken); Task GetByEmailNormalizedAsync(string email, CancellationToken cancellationToken); Task UpdateUserAsync(ApplicationUser user, CancellationToken cancellationToken); Task DeleteUserWithCascadeAsync(ApplicationUser user, CancellationToken cancellationToken); Task ExecuteTransactionalAsync(Func callback, CancellationToken cancellationToken); Task GetEmailByIdAsync(string userId, CancellationToken cancellationToken); Task> GetDisplayNamesByIdsAsync(IEnumerable ids); } }