using Hotline.Share.Enums.KnowledgeBase;

namespace Hotline.Share.Dtos.Knowledge
{
    /// <summary>
    /// 编辑
    /// </summary>
    public record UpdateKnowledgeApplyDto : KnowledgeApplyDto
    {
        /// <summary>
        /// ID
        /// </summary>
        public string Id { get; set; }
    }

    /// <summary>
    /// 新增
    /// </summary>
    public record KnowledgeApplyDto
    {
        /// <summary>
        /// 知识ID
        /// </summary>
        public string KnowledgeId { get; set; }

        /// <summary>
        /// 知识Code
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 内容
        /// </summary>
        public string Content { get; set; }

        /// <summary>
        /// 申请类型
        /// </summary>
        public EApplyType KnowledgeApplyType { get; set; }

        /// <summary>
        /// 处理部门Id
        /// </summary>
        public string DepartmentId { get; set; }

        /// <summary>
        /// 处理部门名称
        /// </summary>
        public string Department { get; set; }

        /// <summary>
        /// 截止时间
        /// </summary>
        public DateTime? ExpiredTime { get; set; }
    }

   /// <summary>
   /// 知识申请详情
   /// </summary>
    public record DataKnowledgeApplyDto: UpdateKnowledgeApplyDto
    {
        /// <summary>
        /// 申请人
        /// </summary>
        public string CreationName { get; set; }

        /// <summary>
        /// 处理人
        /// </summary>
        public string Processor { get; set; }

        /// <summary>
        /// 申请部门
        /// </summary>
        public string CreationBMName { get; set; }

        /// <summary>
        /// 关联知识ID
        /// </summary>
        public string KBID { get; set; }

        /// <summary>
        /// 知识标题
        /// </summary>
        public string KBTitle { get; set; }

        /// <summary>
        /// 处理完成时间
        /// </summary>
        public DateTime? HandleTime { get; set; }

        /// <summary>
        /// 退回时间
        /// </summary>
        public DateTime? ReturnTime { get; set; }

        /// <summary>
        /// 办理或者退回意见
        /// </summary>
        public string Opinion { get; set; }
    }

    /// <summary>
    /// 知识申请办理
    /// </summary>
    public record KnowledgeApplyHandleDto
    {
        /// <summary>
        /// ID
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// 知识ID
        /// </summary>
        public string KnowledgeId { get; set; }

        /// <summary>
        /// 知识Code
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 办理或者退回意见
        /// </summary>
        public string Opinion { get; set; }

    }

    /// <summary>
    /// 退回
    /// </summary>
    public record KnowledgeApplyReturnDto
    {
        /// <summary>
        /// ID
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// 办理或者退回意见
        /// </summary>
        public string Opinion { get; set; }
    }

    public record DataAddApplyDto
    {
        /// <summary>
        /// ID
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// 内容
        /// </summary>
        public string Content { get; set; }
    }
}
