using APT.Infrastructure.Core;
using APT.Infrastructure.Utility;
using System;
using System.Collections.Generic;
using System.ComponentModel;

namespace APT.BaseData.Domain.Entities
{
    [Redis("PAGE_EDIT_ID", "ID", "CODE")]
    [APT.Infrastructure.Api.RootOrg]
    [IgnoreT4]
    public partial class T_PF_EDIT_COLUMN : MesEntityBase
    {
        public T_PF_EDIT_COLUMN()
        {
            IS_DEFAULT = true;
            EDITABLE = true;
            IS_COPY = true;
            CASE = 0;
            CODE_RULE_TYPE = 0;
            INPUT_FILTER_ORG_TYPE = 0;
            VERIFY_TYPE = 0;
            STEP = 1;
        }
        /// <summary>
        /// 编号
        /// </summary>
        public string CODE { get; set; }

        /// <summary>
        /// 表ID字段
        /// </summary>
        public Guid PAGE_EDIT_ID { get; set; }
        /// <summary>
        /// 字段名称（表字段，可导航属性，关联表的字段，如：Nav_Creater.NAME)
        /// </summary>
        public string FIELD_NAME { get; set; }
        /// <summary>
        /// 是否列表字段
        /// </summary>
        public bool IS_TABLE_COLUMN { get; set; }
        /// <summary>
        /// 显示名称
        /// </summary>
        public string LABEL { get; set; }
        /// <summary>
        /// 是否显示
        /// </summary>
        public bool IS_DEFAULT { get; set; }
        /// <summary>
        /// 列类型：1.普通（数据库字段）
        /// </summary>
        public bool IS_CUSTOM { get; set; }
        /// <summary>
        /// 类型名称
        /// </summary>
        public string TYPE_NAME { get; set; }
        /// <summary>
        /// 是否必输
        /// </summary>
        public bool REQUIRED { get; set; }
        /// <summary>
        /// 是否可编辑
        /// </summary>
        public bool EDITABLE { get; set; }

        /// <summary>
        /// 审核单据时是否可编辑
        /// </summary>
        public bool PERMIT_EDITABLE { get; set; }

        /// <summary>
        /// 格式化
        /// </summary>
        public string FORMAT { get; set; }
        ///// <summary>
        ///// 格式化方式
        ///// </summary>
        //public int FORMAT_TYPE { get; set; }'
        /// <summary>
        /// 获取数据的API地址
        /// </summary>
        public string INPUT_DATA_API { get; set; }

        /// <summary>
        ///  关联ID字段（配置保存主键ID的字段名称）
        /// </summary>
        public string INPUT_ID_FIELD { get; set; }

        /// <summary>
        /// 是否只允许选中叶子节点
        /// </summary>
        public bool IS_ONLY_CHECK_LEAF { get; set; }

        /// <summary>
        /// 级联显示级数
        /// </summary>
        public int INPUT_DATA_LEVEL { get; set; }

        /// <summary>
        /// 过滤条件对应的数据库ID(配置关联表的字段，多字段用,号分割）
        /// </summary>
        public string INPUT_FILTER_FIELD { get; set; }
        /// <summary>
        /// 排序字段(配置关联表的字段，多字段用,号分割）
        /// </summary>
        public string INPUT_SORT_FIELD { get; set; }
        /// <summary>
        /// 排序方式(配置关联表的字段，多字段用,号分割）
        /// </summary>
        public string INPUT_SORT_ORDER { get; set; }
        /// <summary>
        ///  显示字段(选择后显示在控件上：配置关联表的一个字段）
        /// </summary>
        public string INPUT_LABEL_FIELD { get; set; }
        /// <summary>
        ///  显示的数据库字段(联动查询后，显示的列表，配置关联表的字段：多字段用,号分割）（查询后，展开的数据）
        /// </summary>
        public string INPUT_SHOW_FIELD { get; set; }
        /// <summary>
        /// 保存取关联表的字段（保存的字段，关联表的字段：多个字段用,号分隔）
        /// </summary>
        public string INPUT_NAV_FIELD { get; set; }
        /// <summary>
        /// 保存当前表的字段（保存到当前编辑表的字段：多个字段用,号分隔）
        /// </summary>
        public string INPUT_SAVE_FIELD { get; set; }

        /// <summary>
        /// 选择显示字段
        /// </summary>
        public string SELECTD_LABEL_FIELD { get; set; }
        /// <summary>
        /// 过滤组织类型
        /// </summary>
        [EnumName("PFFilterOrgTypeEnum")]
        public int? INPUT_FILTER_ORG_TYPE { get; set; }

        /// <summary>
        /// 是否忽略租户标识
        /// </summary>
        public bool IS_IGNORE_TENANT { get; set; }

        /// <summary>
        /// 不存在来源数据时，保留值
        /// </summary>
        public bool INPUT_KEEP_VALUE_BY_NO_SRC { get; set; }

        /// <summary>
        /// 查询格式化
        /// </summary>
        public string QUERY_FORMAT { get; set; }

        /// <summary>
        /// 枚举名称
        /// </summary>
        public string ENUM { get; set; }
        /// <summary>
        /// PFControlTypeEnum
        /// 控件类型：1：input 2：datetime 3:select 4:radio 5:check 6:area 
        /// </summary>
        [EnumName("PFControlTypeEnum")]
        public int CONTROL_TYPE { get; set; }
        /// <summary>
        /// 验证方法
        /// </summary>
        public string VALIDATA_TYPE { get; set; }
        /// <summary>
        /// 顺序 
        /// </summary>
        public int NUM { get; set; }

        /// <summary>
        /// 长度最小值
        /// </summary>
        public int MIN_LEN { get; set; }

        #region  数值控件
        /// <summary>
        /// 数值控件：开启最小值校验
        /// </summary>
        public bool IS_CHECK_MIN { get; set; }

        /// <summary>
        /// 数值控件：开启最大值校验
        /// </summary>
        public bool IS_CHECK_MAX { get; set; }

        /// <summary>
        /// 最大值
        /// </summary>
        public double MAX_VAL { get; set; }
        /// <summary>
        /// 最小值
        /// </summary>
        public double MIN_VAL { get; set; }

        /// <summary>
        /// 数值控件：步长
        /// </summary>
        public double STEP { get; set; }
        #endregion
        /// <summary>
        /// 长度最大值
        /// </summary>
        public int MAX_LEN { get; set; }

        /// <summary>
        /// 验证提示
        /// </summary>
        public string VERIFY_MSG { get; set; }


        /// <summary>
        /// 查询表单编号
        /// </summary>
        public string SHOW_FORM_CODE { get; set; }

        /// <summary>
        /// 查询ID字段名称
        /// </summary>
        public string SHOW_ID_FIELD { get; set; }

        /// <summary>
        /// 编辑页区域ID
        /// </summary>
        public Guid? PAGE_EDIT_PANEL_ID { get; set; }


        /// <summary>
        /// 是否允许批量修改
        /// </summary>
        public bool IS_CAN_BATCH_EDIT { get; set; }


        /// <summary>
        /// 编辑表单编号
        /// </summary>
        public string EDIT_FORM_CODE { get; set; }
        /// <summary>
        /// 编辑表单过滤字段
        /// </summary>
        public string EDIT_FORM_FILTER { get; set; }

        /// <summary>
        /// 编辑表单过滤值
        /// </summary>
        public string EDIT_FORM_FILTER_VALUE { get; set; }

        /// <summary>
        /// 大小写 
        /// </summary>
        [EnumName("FMCaseProcEnum")]
        public int? CASE { get; set; }

        [Description("宽度")]
        /// <summary>
        /// 宽度
        /// </summary>
        public int WIDTH { get; set; }

        [Description("高度（多行文本）")]
        /// <summary>
        /// 宽度
        /// </summary>
        public int HEIGHT { get; set; }



        [Description("填写备注")]
        public string REMARK { get; set; }

        [Description("默认值")]
        public string DEFAULT_VALUE { get; set; }

        [Description("提示信息")]
        public string PROMPT_INFO { get; set; }

        [Description("验证表达式（正则表达式)")]
        public string VERIFY_EXPRESS { get; set; }

        [Description("验证类型")]
        [EnumName("PFEditColumnVerifyTypeEnum")]
        public int? VERIFY_TYPE { get; set; }


        [Description("验证错误提示信息")]
        public string VERIFY_ERROR_INFO { get; set; }

        [Description("拷贝")]
        public bool IS_COPY { get; set; }

        [Description("子表显示方式")]
        [EnumName("ShowType")]
        public int SHOW_TYPE { get; set; }

        /// <summary>
        /// 编码规则类型
        /// </summary>
        [Description("编码规则类型")]
        [EnumName(" PFCodeRuleType")]
        public int? CODE_RULE_TYPE { get; set; }

        [Description("导航属性:编辑页面")]
        /// <summary>
        /// 导航属性：编辑页面
        /// </summary>

        public virtual T_PF_PAGE_EDIT Nav_PageEdit { get; set; }


        public virtual T_PF_PAGE_EDIT_PANEL Nav_PageEditPanel { get; set; }


        public virtual ICollection<T_PF_EDIT_COLUMN_FILTER> Nav_Filters { get; set; }

        public virtual ICollection<T_PF_EDIT_COLUMN_FILL_MAP> Nav_FillMaps { get; set; }
        [Description("源ID")]
        public Guid? SRC_ID { get; set; }
        [Description("是否权限控制")]
        public bool IS_RULE { get; set; }

        /// <summary>
        /// 是否交集过滤 wyw 2024-01-05
        /// </summary>
        [Description("是否交集过滤")]
        public bool IS_AND_FILITER { get; set; }
    }
}
