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