using Hotline.Share.Enums.CallCenter;
using Hotline.Share.Requests;
using XF.Utility.EnumExtensions;

namespace Hotline.Share.Dtos.CallCenter
{
    public record TelGroupDto : UpdateTelGroupDto
    {
        public DateTime CreationTime { get; set; }
        public string DistributionText => Distribution.GetDescription();
        public IReadOnlyList<TelDto> Tels { get; set; }
    }

    public record AddTelGroupDto
    {
        /// <summary>
        /// 分机组编号（讯时设备的groupId,1-50不可重复）
        /// </summary>
        public string No { get; set; }

        /// <summary>
        /// 分机组名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }

        /// <summary>
        /// 呼叫分配方式
        /// </summary>
        public EDistribution Distribution { get; set; }

        /// <summary>
        /// 语音
        /// </summary>
        public string? Voice { get; set; }

        /// <summary>
        /// 不开启IVR时默认接入的分组
        /// </summary>
        public bool IsDefault { get; set; }

        /// <summary>
        /// 组内分机号
        /// </summary>
        public ICollection<string> TelNos { get; set; }
    }

    public record UpdateTelGroupDto : AddTelGroupDto
    {
        public string Id { get; set; }
    }

    public record class QueryTelListDto : PagedRequest
    {
        public string TelNo { get; set; }
    }

    public record class TelListPageDto
    {
        public string Id { get; set; }
        public string TelNo { get; set; }
        public string GroupName { get; set; }
        public int GroupId { get; set; }
        public string ZuoGroupName { get; set; }
    }



    public record AddOrUpdateTelGroupDto
    {
        public string Id { get; set; }
        public string TelNo { get; set; }
        public int GroupId { get; set; }
        public string GroupName { get; set; }
        public string ZuoGroupName { get; set; }
    }


    public record WexTelGroupDto
    {
        public int GroupId { get; set; }

        public string GroupName { get; set; }

        public string ZuoGroupName { get; set; }
    }
}
