namespace CRMSalesDAL.DTO.LeadAllocation; /// /// Result of LeadAllocationBLL.SuggestAllocationAsync — a SUGGESTION only, never an auto-assignment /// ("AI assists, human decides", same principle already established for GEF this week). Confirming /// the suggestion is a normal Deal save (setting DealDTO.RepId), not a separate "accept" endpoint. /// public class LeadAllocationSuggestionDTO { public int LeadId { get; set; } /// The single deterministic top suggestion — lowest OpenDealCount, ties broken by /// lowest RepId. public int SuggestedRepId { get; set; } public string SuggestedRepCode { get; set; } = string.Empty; public string SuggestedRepName { get; set; } = string.Empty; public int SuggestedRepOpenDealCount { get; set; } /// Every rep tied at the minimum OpenDealCount (SuggestedRepId is Candidates.Min(RepId) /// among these) — shown for transparency so a human reviewer can see the full tie, not just /// the deterministic winner. public List Candidates { get; set; } = new(); public DateTime GeneratedOn { get; set; } }