namespace CRMSalesDAL.Query.LeadScoringConfig; /// SQL constants for MLEADSCORINGCONFIG — SalesMind AI Lead Scoring settings. No inline SQL elsewhere. public static class LeadScoringConfigQB { public const string GET_LEADSCORINGCONFIG = @" SELECT C.LEADSCORINGCONFIGID AS LeadScoringConfigId, C.LEADSCORINGCONFIGCODE AS LeadScoringConfigCode, C.LEADSCORINGCONFIGNAME AS LeadScoringConfigName, C.DEMOGRAPHICFITWEIGHTPERCENT AS DemographicFitWeightPercent, C.BEHAVIORALSIGNALSWEIGHTPERCENT AS BehavioralSignalsWeightPercent, C.ENGAGEMENTLEVELWEIGHTPERCENT AS EngagementLevelWeightPercent, C.DEALREADINESSWEIGHTPERCENT AS DealReadinessWeightPercent, C.REMARKS AS Remarks, C.CREATEDBYID AS CreatedById, C.CREATEDON AS CreatedOn, CB.USERNAME AS CreatedByName, C.MODIFIEDBYID AS ModifiedById, C.MODIFIEDON AS ModifiedOn, MB.USERNAME AS ModifiedByName, C.SORTORDER AS SortOrder, C.STATUS AS Status, C.VERSION AS Version, C.TENANTID AS TenantId FROM MLEADSCORINGCONFIG C LEFT JOIN MUSER CB ON CB.USERID = C.CREATEDBYID LEFT JOIN MUSER MB ON MB.USERID = C.MODIFIEDBYID WHERE C.LEADSCORINGCONFIGID = @LeadScoringConfigId; "; /// Latest active row — used by LeadScoringBLL.RecalculateLeadScoreAsync to read the /// configured weights. Returns null (no row) if none exists yet; LeadScoringBLL falls back to /// the documented 25/30/25/20 defaults in that case. public const string GET_LATEST_LEADSCORINGCONFIG = @" SELECT TOP 1 C.LEADSCORINGCONFIGID AS LeadScoringConfigId, C.LEADSCORINGCONFIGCODE AS LeadScoringConfigCode, C.LEADSCORINGCONFIGNAME AS LeadScoringConfigName, C.DEMOGRAPHICFITWEIGHTPERCENT AS DemographicFitWeightPercent, C.BEHAVIORALSIGNALSWEIGHTPERCENT AS BehavioralSignalsWeightPercent, C.ENGAGEMENTLEVELWEIGHTPERCENT AS EngagementLevelWeightPercent, C.DEALREADINESSWEIGHTPERCENT AS DealReadinessWeightPercent, C.REMARKS AS Remarks, C.CREATEDBYID AS CreatedById, C.CREATEDON AS CreatedOn, CB.USERNAME AS CreatedByName, C.MODIFIEDBYID AS ModifiedById, C.MODIFIEDON AS ModifiedOn, MB.USERNAME AS ModifiedByName, C.SORTORDER AS SortOrder, C.STATUS AS Status, C.VERSION AS Version, C.TENANTID AS TenantId FROM MLEADSCORINGCONFIG C LEFT JOIN MUSER CB ON CB.USERID = C.CREATEDBYID LEFT JOIN MUSER MB ON MB.USERID = C.MODIFIEDBYID WHERE C.STATUS = 1 ORDER BY C.LEADSCORINGCONFIGID DESC; "; public const string SAVE_LEADSCORINGCONFIG = @" INSERT INTO MLEADSCORINGCONFIG ( LEADSCORINGCONFIGID, LEADSCORINGCONFIGCODE, LEADSCORINGCONFIGNAME, DEMOGRAPHICFITWEIGHTPERCENT, BEHAVIORALSIGNALSWEIGHTPERCENT, ENGAGEMENTLEVELWEIGHTPERCENT, DEALREADINESSWEIGHTPERCENT, REMARKS, CREATEDBYID, CREATEDON, MODIFIEDBYID, MODIFIEDON, SORTORDER, STATUS, VERSION, TENANTID ) VALUES ( @LeadScoringConfigId, @LeadScoringConfigCode, @LeadScoringConfigName, @DemographicFitWeightPercent, @BehavioralSignalsWeightPercent, @EngagementLevelWeightPercent, @DealReadinessWeightPercent, @Remarks, @CreatedById, @CreatedOn, @ModifiedById, @ModifiedOn, @SortOrder, @Status, @Version, @TenantId ); "; public const string UPDATE_LEADSCORINGCONFIG = @" UPDATE MLEADSCORINGCONFIG SET LEADSCORINGCONFIGCODE = @LeadScoringConfigCode, LEADSCORINGCONFIGNAME = @LeadScoringConfigName, DEMOGRAPHICFITWEIGHTPERCENT = @DemographicFitWeightPercent, BEHAVIORALSIGNALSWEIGHTPERCENT = @BehavioralSignalsWeightPercent, ENGAGEMENTLEVELWEIGHTPERCENT = @EngagementLevelWeightPercent, DEALREADINESSWEIGHTPERCENT = @DealReadinessWeightPercent, REMARKS = @Remarks, MODIFIEDBYID = @ModifiedById, MODIFIEDON = @ModifiedOn, SORTORDER = @SortOrder, STATUS = @Status, VERSION = @Version WHERE LEADSCORINGCONFIGID = @LeadScoringConfigId; "; public const string DELETE_LEADSCORINGCONFIG = @" DELETE FROM MLEADSCORINGCONFIG WHERE LEADSCORINGCONFIGID = @LeadScoringConfigId; "; public const string GET_SELECTLIST_LEADSCORINGCONFIG = @" SELECT LEADSCORINGCONFIGID AS Id, LEADSCORINGCONFIGCODE AS Code, LEADSCORINGCONFIGNAME AS Name FROM MLEADSCORINGCONFIG WHERE STATUS = 1 ORDER BY LEADSCORINGCONFIGNAME; "; }