using System.Data.Common; using GB5Shared.DTO.Framework.Login; using GB5Shared.ResponseStandard; using IDMSDAL.DTOs; namespace IDMSDAL.Interfaces; public interface IEngagementDAL { // Reads Task GetEngagementAsync(int engagementId, LoginDTO login, CancellationToken ct); Task> GetEngagementModulesAsync(int engagementId, LoginDTO login, CancellationToken ct); Task GetEngagementDashboardAsync(int engagementId, LoginDTO login, CancellationToken ct); // Writes — all accept DbTransaction tx from BLL Task> SaveEngagementAsync(EngagementDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> UpdateEngagementAsync(EngagementDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> ActivateEngagementAsync(int engagementId, string activeDomainsJson, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> DeclareGoLiveAsync(int engagementId, DateTime goLiveOn, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> UpdateHealthStatusAsync(int engagementId, string healthStatus, int signalScore, LoginDTO login, DbTransaction tx, CancellationToken ct); // Module management Task> SaveEngagementModuleAsync(EngagementModuleDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> DeleteEngagementModulesAsync(int engagementId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> UpdateModuleSeedingStatusAsync(int engagementModuleId, byte status, DateTime? seededOn, LoginDTO login, CancellationToken ct); }