using System.Data.Common; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using CRMSalesDAL.DTO.LeadScoringConfig; namespace CRMSalesDAL.CustomCode.LeadScoringConfig; public interface ILeadScoringConfigDAL { Task GetLeadScoringConfig(int leadScoringConfigId, LoginDTO loginDTO, CancellationToken ct); /// Latest active row, or null if none exists yet — used by LeadScoringBLL to read /// the configured weights. Task GetLatestLeadScoringConfig(LoginDTO loginDTO, CancellationToken ct); Task GetSelectListLeadScoringConfig(CriteriaDTO criteriaDTO, LoginDTO loginDTO, CancellationToken ct); // Transactional write overloads — called from BaseEntityAppService.ExecuteSaveAsync's // persistFunc so the save participates in the single pipeline transaction. Task SaveLeadScoringConfig(LeadScoringConfigDTO leadScoringConfigDTO, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task UpdateLeadScoringConfig(LeadScoringConfigDTO leadScoringConfigDTO, LoginDTO loginDTO, DbTransaction tx, CancellationToken ct); Task DeleteLeadScoringConfig(int leadScoringConfigId, LoginDTO loginDTO, CancellationToken ct); }