using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Hotline.Share.Enums.FlowEngine;
using Hotline.Share.Enums.Order;
using Hotline.Share.Requests;

namespace Hotline.Share.Dtos.FlowEngine.Workflow
{
    /// <summary>
    /// 分页查询会签信息
    /// </summary>
    /// <param name="IsOnlyStarter">根据发起人过滤会签信息</param>
    /// <param name="IsProvince"></param>
    public record QueryWorkflowCountersignDto(bool IsOnlyStarter, bool? IsProvince) : PagedKeywordRequest;

    public record QueryOrderCountersignDto : PagedKeywordRequest
    {
        /// <summary>
        /// 发起的会签
        /// </summary>
        public bool? InitiatedCountersignature { get; set; }

        /// <summary>
        /// 会签已办
        /// </summary>
        public bool? HandleCountersignature { get; set; }

        /// <summary>
        /// 标题
        /// </summary>
        public string? Title { get; set; }

        /// <summary>
        /// 工单编码
        /// </summary>
        public string? OrderNo { get; set; }

        /// <summary>
        /// 受理类型（√）
        /// </summary>
        public string AcceptType { get; set; }

        /// <summary>
        /// 来源渠道（√）
        /// </summary>
        public string Channel { get; set; }

        /// <summary>
        /// 会签类型
        /// </summary>
        public ECounterSignType? CounterSignType { get; set; }

        /// <summary>
        /// 接办部门
        /// </summary>
        public string? OrgId { get; set; }

        /// <summary>
        /// 热点分类（√）
        /// </summary>
        public string Hotspot { get; set; }

        /// <summary>
        /// 来电号码
        /// </summary>
        public string? FromPhone { get; set; }

        /// <summary>
        /// 会签次数
        /// </summary>
        public int? CounterSignCount { get; set; } = 0;

        /// <summary>
        /// 发起人
        /// </summary>
        public string? StarterName { get; set; }

        /// <summary>
        /// 发起部门
        /// </summary>
        public string? StarterOrgName { get; set; }

        /// <summary>
        /// 办理状态
        /// </summary>
        public EOrderStatus? Status { get; set; }

        /// <summary>
        /// 发起时间开始
        /// </summary>
        public DateTime? InitiationTimeStart { get; set; }

        /// <summary>
        /// 发起时间结束
        /// </summary>
        public DateTime? InitiationTimeEnd { get; set; }

        /// <summary>
        /// 受理时间开始
        /// </summary>
        public DateTime? CreationTimeStart { get; set; }

        /// <summary>
        /// 受理时间结束
        /// </summary>
        public DateTime? CreationTimeEnd { get; set; }

        /// <summary>
        /// 超期状态
        /// </summary>
        public bool? ExpiredStatus { get; set; }
    }
}
