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(EKnowledgeRetrievalType? RetrievalType,string? Attribution,string Sort, string? CreateOrgId, string? HotspotId, string? HotspotName, string? KnowledgeTypeId, string? Content) : PagedKeywordRequest;

    /// <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;

    /// <summary>
    /// 
    /// </summary>
    /// <param name="CreateOrgId">部门</param>
    /// <param name="HotspotId">热点</param>
    /// <param name="KnowledgeTypeId">分类</param>
    /// <param name="Status">状态</param>
    /// <param name="CreationStartTime">创建开始</param>
    /// <param name="CreationEndTime">创建结束</param>
    /// <param name="StartOnShelfTime">上架时间-开始</param>
    /// <param name="EndOnShelfTime">上架时间-结束</param>
    /// <param name="StartOffShelfTime">下架时间-开始</param>
    /// <param name="EndOffShelfTime">下架时间-结束</param>
    //public record KnowPagedListDto(string? CreateOrgId, string? HotspotId, string? KnowledgeTypeId, EKnowledgeStatus? Status, DateTime? CreationStartTime, DateTime? CreationEndTime,
    //  DateTime? StartOnShelfTime, DateTime? EndOnShelfTime, DateTime? StartOffShelfTime, DateTime? EndOffShelfTime) : PagedKeywordRequest;

    public record KnowPagedListDto : PagedKeywordRequest 
    {
        /// <summary>
        /// 标题
        /// </summary>
        public string? Title { get; set; }  

        /// <summary>
        /// 状态
        /// </summary>
        public EKnowledgeStatus? Status { get; set; }    

        /// <summary>
        /// 是否公开
        /// </summary>
        public bool? IsPublic { get; set; }

		/// <summary>
		/// 摘要
		/// </summary>
		public string? Summary { get; set; }

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

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

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

        /// <summary>
        /// 审批类型
        /// </summary>
        public string? ModuleCode { get; set; }

	}
}
