using Hotline.Share.Dtos.Order; using Hotline.Share.Enums.Ai; using Hotline.Share.Requests; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using XF.Utility.EnumExtensions; namespace Hotline.Share.Dtos.Ai { public record AiCallOutDetailListRequest:PagedRequest { public string Id { get; set; } } public class AiCallOutDetailListRep { public string OuterNo { get; set; } public string Name { get; set; } public DateTime? CallOutTime { get; set; } /// /// 是否成功 /// public bool? IsSuccess { get; set; } public EAiCallOutState AiCallOutState { get; set; } } public record AiCallOutListRequest:PagedRequest { public string TaskName { get; set; } public EAiCallOutTaskState? AiCallOutTaskState { get; set; } public DateTime? StartTime { get; set; } public DateTime? EndTime { get; set;} } public class AiCallOutListRep { public string Id { get; set; } public string TaskName { get; set; } public EAiCallOutTaskState AiCallOutTaskState { get; set; } public string AiCallOutTaskStateText => AiCallOutTaskState.GetDescription(); /// /// 批次上报结果ID /// public string? BatchUid { get; set; } public string CallOutTemplateId { get; set; } public string CallOutTemplateName { get; set; } /// /// 应回访数量 /// public int HasVisitCount { get; set; } /// /// 已回访成功数量 /// public int VisitedCount { get; set; } /// /// 已回访失败数量 /// public int VisitedFailCount { get; set; } /// /// 节日禁呼 0:否 1:是 /// public int FestivalBan { get; set; } public DateTime BeginTime { get; set; } public DateTime EndTime { get; set; } public DateTime CreationTime { get; set; } /// /// 创建人 /// public string? CreatorName { get; set; } /// /// 创建部门 /// public string? CreatorOrgName { get; set; } } public class CallOutTemplateDto { public string TemplateName { get; set; } public string TemplateContent { get; set; } } public class CanUseCallOutTemplateListRep { public string Id { get; set; } public string TemplateName { get; set; } } public class UpdateCallOutTemplateDto:CallOutTemplateDto { public string Id { get; set; } } public record AiCallOutTemplateQueryRequest:PagedRequest { public string TemplateName { get; set; } public DateTime? StartTime { get; set; } public DateTime? EndTime { get; set; } } public record AiCallOutTemplateQueryRep { public string Id { get; set; } public string TemplateContent { get; set; } /// /// 模板名称 /// public string TemplateName { get; set; } /// /// 外呼任务数 /// public int CallOutTaskCount { get; set; } /// /// 创建时间 /// public DateTime CreationTime { get; set; } /// /// 是否启用 /// public bool IsEnable { get; set; } /// /// 创建人 /// public string? CreatorName { get; set; } /// /// 创建部门 /// public string? CreatorOrgName { get; set; } } public class AiVisitBackDto { public string BatchUid { get; set; } public string BatchName { get; set; } public string SceneUid { get; set; } public string SenceName { get; set; } public string TaskUid { get; set; } public string CalledNumber { get; set; } /// /// 任务状态( 1 :待执行、2 :暂停中、3 :执行中、4 :失效、5 :呼叫失败 、6:已结束(完成或取消)) /// public int TaskStatus { get; set; } public int CallTimes { get; set; } public List CallRecordList { get; set; } } public class CallRecordDto { public int CallNo { get; set; } /// /// 呼叫状态(1:呼叫中、2:完成、3:呼叫失败) /// public int CallStatus { get; set; } public string? RecordUrl { get; set; } /// /// 回访结果 (1成功、2:不涉及、3:失败) /// public int ReturnVisit { get; set; } public List QuestionnaireResult { get; set; } /// /// 不满意原因 /// public Dictionary SceneVariable { get; set; } } public class QuestionnaireResult { public string QuestionId { get; set; } public string QuestionChoice { get; set; } public string QuestionResult { get; set; } } public record AiVisitListDto:PagedKeywordRequest { } public record AiVisitDetailListDto:PagedKeywordRequest { public string Id { get; set; } } public class AiOrderVisitDto { public string Id { get; set; } public string Name { get; set; } public DateTime BeginTime { get; set; } public DateTime EndTime { get; set; } public EAiOrderVisitTaskState TaskState { get; set; } public string TaskStateText => TaskState.GetDescription(); /// /// 批次上报结果ID /// public string? BatchUid { get; set; } /// /// 节日禁呼 0:否 1:是 /// public int FestivalBan { get; set; } /// /// 外呼规则类型 1:自定义 2::使用现有规则 /// public int RuleType { get; set; } /// /// 现有外呼规则ID /// public string RuleUid { get; set; } /// /// 应回访数量 /// public int HasVisitCount { get; set; } /// /// 已回访成功数量 /// public int VisitedCount { get; set; } /// /// 已回访失败数量 /// public int VisitedFailCount { get; set; } public DateTime CreationTime { get; set; } public string? CreatorName { get; set; } } public class AiOrderVisitDetailDto { /// /// 主表ID /// public string AiOrderVisitId { get; set; } /// /// 工单ID /// public string OrderId { get; set; } /// /// 工单 /// public OrderDto Order { get; set; } /// /// 工单回访主表ID /// public string OrderVisitId { get; set; } /// /// 工单 /// public OrderVisitDto OrderVisit { get; set; } /// /// 外呼电话 /// public string OuterNo { get; set; } public EAiOrderVisitState AiOrderVisitState { get; set; } public string AiOrderVisitStateText => AiOrderVisitState.GetDescription(); /// /// 批此上传成功后任务ID /// public string? TaskUid { get; set; } /// /// 是否成功 /// public bool? IsSuccess { get; set; } } public class CanAiVisitListDto { /// /// 工单标题 /// public string Title { get; set; } /// /// 工单编号 /// public string No { get; set; } /// /// 热点分类 /// public List HotspotIds { get; set; } = new(); /// /// 受理类型 /// public List AcceptTypes { get; set; } = new(); } public class AddAiVisitDto { public string Name { get; set; } public DateTime BeginTime { get; set; } public DateTime EndTime { get; set; } /// /// 节日禁呼 0:否 1:是 /// public int FestivalBan { get; set; } public List AiOrderVisitDetails { get; set; } } public class CloseCalloutTaskReq { public string Id { get; set; } } public class AddAiCallOutRequest { public string TaskName { get; set; } public DateTime BeginTime { get; set; } public DateTime EndTime { get; set; } /// /// 模板ID /// public string CallOutTemplateId { get; set; } /// /// 节日禁呼 0:否 1:是 /// public int FestivalBan { get; set; } public List AddAiCallOutTaskDetailDtos { get; set; } } public class AddAiCallOutTaskDetailDto { public string OuterNo { get; set; } public string Name { get; set; } } public class AddAiOrderVisitDetailDto { /// /// 工单ID /// public string OrderId { get; set; } /// /// 工单回访主表ID /// public string OrderVisitId { get; set; } /// /// 外呼电话 /// public string OuterNo { get; set; } } }