
using APT.BaseData.Domain.Entities;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace APT.BaseData.Domain.ApiModel
{

	public class SendFlowBaseParam
	{
		public SendFlowBaseParam()
		{
			this.Description = string.Empty;
		}
		public string CustomName { get; set; }

		public string Description { get; set; }

		public Guid? OrgId { get; set; }

		/// <summary>
		/// 实体类型 参考PFCodeRuleType
		/// </summary>
		public int EntityType { get; set; }

		/// <summary>
		/// 送审人员ID
		/// </summary>
		public string UserId { get; set; }
		/// <summary>
		/// 送人员名称
		/// </summary>
		public string UserName { get; set; }
	}

	public class SendFlowParam: SendFlowBaseParam
	{
		public Guid FlowSchemeId { get; set; }

		public Guid EntityId { get; set; }
	}


	public class SendFlowEntityParam<T>: SendFlowBaseParam
	{
		public string FlowCode { get; set; }
		public T Entity { get; set; }
		public T_PF_FLOW_SCHEME FlowScheme { get; set; }
	}


	public class SendFlowResult<T>
	{
		public T Entity { get; set; }

		public T_PF_FLOW_INSTANCE FlowInstance { get; set; }

		public T_PF_FLOW_INSTANCE_OPER_HIS FlowInstanceOperationHistory { get; set; }

		public T_PF_FLOW_INSTANCE_TRANS_HIS FlowInstanceTransitionHistory { get; set; }
	}


	public class PermitFlowParam
	{
		public PermitFlowParam()
		{
			this.Description = string.Empty;
		}
		public Guid FlowId { get; set; }

		public int PermitStatus { get; set; }


		public string Description { get; set; }

		public string NodeRejectStep { get; set; }

		public string UserId { get; set; }
		public string UserName { get; set; }
	}

	public class VerificationPassBatchReq
	{
		/// <summary>
		/// ID列表
		/// </summary>
		public string Ids { get; set; }

		/// <summary>
		/// 用户ID
		/// </summary>
		public string UserId { get; set; }
		/// <summary>
		/// 用户名称
		/// </summary>
		public string UserName { get; set; }

	}

	public class VerificationReq
	{
		public string FlowInstanceId { get; set; }
		/// <summary>
		/// 1:同意；2：不同意；3：驳回
		/// </summary>
		public string VerificationFinally { get; set; }

		/// <summary>
		/// 审核意见
		/// </summary>
		public string VerificationOpinion { get; set; }

		/// <summary>
		/// 驳回的步骤，即驳回到的节点ID
		/// </summary>
		public string NodeRejectStep { get; set; }

		/// <summary>
		/// 用户ID
		/// </summary>
		public string UserId { get; set; }
		/// <summary>
		/// 用户名称
		/// </summary>
		public string UserName { get; set; }
	}



	public class FlowResponseBase
	{
		public T_PF_FORM Form { get; set; }
	}

	public class FlowResponse : FlowResponseBase
	{
		public T_PF_FLOW_INSTANCE Flow { get; set; }

		public dynamic Entity { get; set; }

		public List<T_PF_FLOW_INSTANCE_OPER_HIS> OperationHistorys { get; set; }
	}

	public class FlowSchemeResponse : FlowResponseBase
	{
		public T_PF_FLOW_SCHEME Scheme { get; set; }
	}


}