using Hotline.Settings.Hotspots;
using Hotline.Share.Dtos;
using Hotline.Share.Dtos.Order;
using Hotline.Share.Enums.Order;
using SqlSugar;
using XF.Domain.Repository;
using XF.Utility.EnumExtensions;
namespace Hotline.Orders
{
[SugarIndex("index_visitDetail_creationtime", nameof(OrderVisitDetail.CreationTime), OrderByType.Desc)]
public class OrderVisitDetail : CreationEntity
{
///
/// 回访主表ID
///
public string VisitId { get; set; }
[Navigate(NavigateType.OneToOne, nameof(VisitId))]
public OrderVisit OrderVisit { get; set; }
///
/// 二次办理申请
///
[Navigate(NavigateType.OneToOne, nameof(Id), nameof(OrderSecondaryHandling.VisitDetailId))]
public OrderSecondaryHandling SecondaryHandling { get; set; }
///
/// 甄别记录
///
[Navigate(NavigateType.OneToMany, nameof(OrderScreen.VisitDetailId), nameof(Id))]
public List OrderScreens { get; set; }
///
/// 语音评价(话务评价)
///
public EVoiceEvaluate? VoiceEvaluate { get; set; }
///
/// 话务员评价(话务评价)
///
public ESeatEvaluate? SeatEvaluate { get; set; }
///
/// 是否联系
///
public bool? IsContact { get; set; }
///
/// 处理结果
///
public bool? Volved { get; set; }
///
/// 未处理内容
///
public string? VolveConent { get; set; }
///
/// 部门办件结果
///
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public Kv? OrgProcessingResults { get; set; }
///
/// 不满意原因
///
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public List? OrgNoSatisfiedReason { get; set; }
///
/// 部门办件态度
///
[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
public Kv? OrgHandledAttitude { get; set; }
///
/// 回访内容
///
public string? VisitContent { get; set; }
///
/// 回访部门Code
///
[SugarColumn(IsNullable = true)]
public string VisitOrgCode { get; set; }
///
/// 回访部门名称
///
[SugarColumn(IsNullable = true)]
public string VisitOrgName { get; set; }
///
/// 回访对象类型 10:话务员 20:部门
///
public EVisitTarget VisitTarget { get; set; }
///
/// 短信回访回填
///
///
///
public void ReplyBackfill(Kv visitSatisfactionKv)
{
this.OrgProcessingResults = visitSatisfactionKv;
this.OrgHandledAttitude = visitSatisfactionKv;
this.VisitContent = visitSatisfactionKv.Value;
}
///
/// 短信回访回填
///
///
///
public void ReplyBackfill(ESeatEvaluate seatEvaluate)
{
this.SeatEvaluate ??= seatEvaluate;
VisitContent = seatEvaluate.GetDescription();
}
///
/// 截至甄别时间
///
public DateTime? ScreenByEndTime { get; set; }
}
}