using Hotline.KnowledgeBase;
using Hotline.Share.Enums.KnowledgeBase;
using Hotline.Share.Requests;

namespace Hotline.Share.Dtos.Knowledge
{
    /// <summary>
    /// 草稿箱
    /// </summary>
    public record MyDraftsListPagedDto(string? KnowledgeTypeId, DateTime? StartTime, DateTime? EndTime) : PagedKeywordRequest;

    /// <summary>
    /// 审核记录
    /// </summary>
    /// <param name="id"></param>
    public record AuditLogListPagedDto(string? id) : PagedKeywordRequest;

    /// <summary>
    /// 审核管理
    /// </summary>
    /// <param name="EKnowledgeApplyType">申请类型</param>
    /// <param name="EKnowledgeWorkFlowStatus">审核状态</param>
    public record KnowledgeApprovalPagedListDto(EKnowledgeApplyType? EKnowledgeApplyType, EKnowledgeWorkFlowStatus? EKnowledgeWorkFlowStatus) : PagedKeywordRequest;

    /// <summary>
    /// 知识检索
    /// </summary>
    /// <param name="RetrievalType">检索类型</param>
    /// <param name="Attribution">归属</param>
    /// <param name="Sort">排序字段</param>
    /// <param name="CreateOrgId">部门id</param>
    /// <param name="HotspotId">热点id</param>
    /// <param name="HotspotName">热点名称</param>;
    /// <param name="KnowledgeTypeId">类型id</param>
    /// <param name="Content">受理内容</param>
    public record KnowledgeRetrievalPagedListDto : PagedKeywordRequest
    {
        /// <summary>
        /// 检索类型
        /// </summary>
        public EKnowledgeRetrievalType? RetrievalType { get; set; }

        /// <summary>
        /// 归属
        /// </summary>
        public string? Attribution { get; set; }

        /// <summary>
        /// 排序字段
        /// </summary>
        public string Sort { get; set; }

        /// <summary>
        /// 部门id
        /// </summary>
        public string? CreateOrgId { get; set; }

        /// <summary>
        /// 热点id
        /// </summary>
        public string? HotspotId { get; set; }

        /// <summary>
        /// 热点名称
        /// </summary>
        public string? HotspotName { get; set; }

        /// <summary>
        /// 类型id
        /// </summary>
        public string? KnowledgeTypeId { get; set; }

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

    /// <summary>
    /// 来电弹屏知识库查询
    /// </summary>
    /// <param name="HotspotId">热点ID</param>
    public record KnowledgePopScreenPagedListDto(EKnowledgeRetrievalType? RetrievalType, string? Attribution, string? HotspotId) : PagedKeywordRequest;

    /// <summary>
    /// 我的知识删除
    /// </summary>
    /// <param name="EKnowledgeWorkFlowStatus"></param>
    /// <param name="StartApplyTime"></param>
    /// <param name="EndApplyTime"></param>
    public record KnowledgeDeletelPagedListDto(EKnowledgeWorkFlowStatus? EKnowledgeWorkFlowStatus, DateTime? StartApplyTime, DateTime? EndApplyTime) : PagedKeywordRequest;
}
