
using Hotline.Orders;
using Hotline.Share.Dtos.Ai;
using Hotline.Share.Enums.Ai;
using SqlSugar;
using XF.Domain.Repository;

namespace Hotline.Ai.CallOut
{
    public class CallOutTask: CreationEntity
    {
        /// <summary>
        /// 任务名称
        /// </summary>
        public string TaskName { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        public EAiCallOutTaskState AiCallOutTaskState { get; set; }

        /// <summary>
        /// 批次上报结果ID
        /// </summary>
        public string? BatchUid { get; set; }

        public string CallOutTemplateId { get; set; }

        [Navigate(NavigateType.OneToOne, nameof(CallOutTemplateId))]
        public CallOutTemplate CallOutTemplate { get; set; }

        /// <summary>
        /// 应回访数量
        /// </summary>
        public int HasVisitCount { get; set; }

        /// <summary>
        /// 已回访成功数量
        /// </summary>
        public int VisitedCount { get; set; }

        /// <summary>
        /// 已回访失败数量
        /// </summary>
        public int VisitedFailCount { get; set; }

        /// <summary>
        /// 节日禁呼 0：否 1：是
        /// </summary>
        public int FestivalBan { get; set; }

        public DateTime BeginTime { get; set; }

        public DateTime EndTime { get; set; }

        [Navigate(NavigateType.OneToMany, nameof(CallOutTaskDetail.CallOutTaskId))]
        public List<CallOutTaskDetail> CallOutTaskDetails{ get; set; }
    }
}
