//--------------------------------------------------------------------
//     此代码由T4模板自动生成  byzhouhang 20210918
//	   生成时间 2022-03-28 16:43:12 
//     对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Collections.Generic;

namespace IRaCIS.Core.Domain.Models
{
    ///<summary>
    ///FrontAuditConfig
    ///</summary>
    [Table("FrontAuditConfig")]
    public class FrontAuditConfig : Entity, IAuditUpdate, IAuditAdd
    {
        /// <summary>
        /// Value
        /// </summary>

        public string Value { get; set; } = String.Empty;

        /// <summary>
        /// ValueCN
        /// </summary>

        public string ValueCN { get; set; } = String.Empty;

        /// <summary>
        /// Description
        /// </summary>

        public string Description { get; set; } = String.Empty;

        /// <summary>
        /// CreateTime
        /// </summary>

        public DateTime CreateTime { get; set; }

        /// <summary>
        /// CreateUserId
        /// </summary>

        public Guid CreateUserId { get; set; }

        /// <summary>
        /// UpdateTime
        /// </summary>

        public DateTime UpdateTime { get; set; }

        /// <summary>
        /// UpdateUserId
        /// </summary>

        public Guid UpdateUserId { get; set; }

        /// <summary>
        /// Code
        /// </summary>

        public string Code { get; set; } = String.Empty;

        /// <summary>
        /// ParentId
        /// </summary>
        public Guid? ParentId { get; set; }

        /// <summary>
        /// IsEnable
        /// </summary>

        public bool IsEnable { get; set; }

        /// <summary>
        /// IsConfig
        /// </summary>

        public bool IsConfig { get; set; }

        /// <summary>
        ///  ModuleTypeId
        /// </summary>
        public Guid? ModuleTypeId { get; set; }

        /// <summary>
        ///  OptTypeId 
        /// </summary>
        public Guid? OptTypeId { get; set; }

        /// <summary>
        /// ChildrenTypeId
        /// </summary>
        public Guid? ChildrenTypeId { get; set; }

        public int IsShowParent { get; set; }

        public string ConfigType { get; set; } = String.Empty;

        public int Sort { get; set; }




        public string DictionaryKey { get; set; }

        public string EnumType { get; set; }


        public Guid? ObjectTypeId { get; set; }


        public bool IsShowByTrialConfig { get; set; }

        public string TrialConfigRelyFieldName { get; set; }



        /// <summary>
        /// 标识
        /// </summary>
        public string Identification { get; set; }


        /// <summary>
        /// 是否有签名
        /// </summary>
        public bool IsHaveSign { get; set; }

        /// <summary>
        /// 是否有原因
        /// </summary>
        public bool IsHaveReason { get; set; }

        /// <summary>
        /// 是否完成
        /// </summary>
        public bool IsFinish { get; set; }

        /// <summary>
        /// 是否加入计划
        /// </summary>
        public bool IsJoinPlan { get; set; }

        /// <summary>
        /// 数据类型
        /// </summary>

        public string DataType { get; set; }

        /// <summary>
        /// 子数据Lable
        /// </summary>

        public string ChildDataLabel { get; set; }

        /// <summary>
        /// 子数据Value
        /// </summary>

        public string ChildDataValue { get; set; }

        /// <summary>
        /// 是否为特殊类型
        /// </summary>
        public bool IsSpecialType { get; set; }


        /// <summary>
        /// 日期类型
        /// </summary>

        public string DateType { get; set; } = String.Empty;

        /// <summary>
        /// 字典Code
        /// </summary>

        public string DictionaryCode { get; set; } = String.Empty;

        /// <summary>
        /// 字典Type
        /// </summary>

        public string DictionaryType { get; set; } = String.Empty;

        /// <summary>
        /// 字典表
        /// </summary>

        public string ForeignKeyTableName { get; set; } = String.Empty;

        /// <summary>
        /// 字典Value
        /// </summary>

        public string ForeignKeyValue { get; set; } = String.Empty;

        /// <summary>
        /// 字典
        /// </summary>

        public string ForeignKeyText { get; set; } = String.Empty;


        /// <summary>
        /// 接口名
        /// </summary>

        public string InterfaceName { get; set; } = String.Empty;



        public string TableConfigJsonStr { get; set; } = String.Empty;

        public string UrlConfigJsonStr { get; set; } = String.Empty;

    }




    public class UrlConfig
    {
        public bool IsRoute { get; set; }

        public string RoutePath { get; set; }

        public bool IsHaveParameters { get; set; }

        public List<ParameterConfig> ParameterList { get; set; } = new List<ParameterConfig>();

        public class ParameterConfig
        {
            public string UrlParameterName { get; set; } = String.Empty;
            public string UrlParameterValueName { get; set; } = String.Empty;
        }
    }

    public class TableConfig
    {
        public bool IsList { get; set; }
        public string ListName { get; set; } = String.Empty;
        public bool IsFixedColumn { get; set; }

        public string FixedColumnName { get; set; } = String.Empty;

        public string ColumnName { get; set; } = String.Empty;

        public string ColumnValue { get; set; } = String.Empty;

        public bool IsMerge { get; set; }

        public string MergeColumnName { get; set; } = String.Empty;


    }

}