using System.Collections.Generic;

namespace GxPress.Entity.WorkProcessDto
{
    /// <summary>
    /// 流程节点
    /// </summary>
    public class ProcessNodeDto
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 节点名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 节点类型（Start,Approver,Switch,Case,End）
        /// ProcessNodeType
        /// </summary>
        public string Type { get; set; }

        /// <summary>
        /// 父节点Id
        /// </summary>
        public int ParentId { get; set; }

        /// <summary>
        /// 只读表单项数组
        /// </summary>
        public IEnumerable<int> ReadOnlyFields { get; set; }

        /// <summary>
        /// 隐藏表单项数组
        /// </summary>
        public IEnumerable<int> HiddenFields { get; set; }

        /// <summary>
        /// 抄送数组
        /// </summary>
        public List<CarbonCopy> CarbonCopies { get; set; }

        /// <summary>
        /// 是否允许上会
        /// </summary>
        public bool AllowMeeting { get; set; }

        /// <summary>
        /// 默认审批人Id
        /// </summary>
        public int DefaultApprovalUserId { get; set; }

        /// <summary>
        /// 默认审批人名称
        /// </summary>
        public string DefaultApprovalUserName { get; set; }

        /// <summary>
        /// 多人审批规则（And,Or）
        /// </summary>
        public string ApprovalType { get; set; }

        /// <summary>
        /// 级别
        /// </summary>
        public string CaseLevel { get; set; }

        /// <summary>
        /// 审批用户
        /// </summary>
        public List<ApproverCheck> ApproverChecks { get; set; }

        /// <summary>
        /// 条件节点规则
        /// </summary>
        public List<Condition> Conditions { get; set; }

        /// <summary>
        /// 下级节点
        /// </summary>
        public List<ProcessNodeDto> Children { get; set; }
    }
}
