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;
";
}