using SeaHaven.Services.DTOs; namespace SeaHaven.Services.Interfaces { public interface IFollowUpService { Task GetFollowUpByIdAsync(int id); Task GetFollowUpByIdWithDetailsAsync(int id); Task> GetAllFollowUpsAsync(); Task> GetFollowUpsByWorkOrderIdAsync(int workOrderId); Task> GetFollowUpsPagedAsync(int page, int pageSize, string? search = null, string? status = null); Task CreateFollowUpAsync(CreateFollowUpDTO dto, string userId); Task UpdateFollowUpAsync(int id, UpdateFollowUpDTO dto, string userId); Task DeleteFollowUpAsync(int id, string userId); Task FollowUpExistsAsync(int id); Task GetTotalFollowUpCountAsync(); Task> GetFollowUpListAsync(int page, int pageSize, string? search, string? status, CancellationToken cancellationToken); Task GetFollowUpDetailAsync(int id, CancellationToken cancellationToken); Task CreateOpenFollowUpAsync(FollowUpCreateRequestDTO dto, string userId, CancellationToken cancellationToken); Task UpdateFollowUpFieldsAsync(int id, FollowUpUpdateRequestDTO dto, CancellationToken cancellationToken); Task SetFollowUpStatusAsync(int id, string status, CancellationToken cancellationToken); Task RemoveFollowUpAsync(int id, CancellationToken cancellationToken); } }