using Data.SeaHavenIndustries; namespace SeaHaven.DataServices.Interfaces { /// /// Data service interface for Contact entity /// Handles all data access operations for Contacts /// public interface IContactDataService { // Query operations Task GetByIdAsync(int id); Task GetByIdWithDetailsAsync(int id); Task> GetAllAsync(); Task> GetByAccountIdAsync(int accountId); Task> GetByTypeAsync(string type); Task GetByEmailAsync(string email); Task GetByPhoneAsync(string phone); // Paged results Task<(IEnumerable Items, int TotalCount)> GetPagedAsync( int page, int pageSize, string? search = null, string? type = null); // Command operations Task AddAsync(Contacts contact); Task UpdateAsync(Contacts contact); Task DeleteAsync(int id); // Validation operations Task ExistsAsync(int id); Task EmailExistsAsync(string email, int? excludeId = null); Task PhoneExistsAsync(string phone, int? excludeId = null); // Count operations Task CountAsync(); Task CountByAccountIdAsync(int accountId); Task CountByTypeAsync(string type); } }