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

namespace APT.BaseData.Domain.Entities
{
    [Redis("PAGE_FORM_QUERY_ID", "ID", "CODE")]
    [APT.Infrastructure.Api.RootOrg]
    [IgnoreT4]
    public partial class T_PF_QUERY : MesEntityBase
    {
        /// <summary>
        /// App
        /// </summary>
        public T_PF_QUERY()
        {
            IS_DEFAULT_QUERY = true;
            IS_DEFAULT_SHOW = true;
            IS_CUSTOM = false;
            CASE = 0;
            IS_SYS_PARAM = false;
            IS_REQUIRE = false;

        }

        /// <summary>编码</summary>
        public string CODE { get; set; }
        /// <summary>
        /// 字段名称
        /// </summary>
        public string QUERY_NAME { get; set; }
        /// <summary>
        /// 显示名称
        /// </summary>
        public string LABEL { get; set; }
        /// <summary>
        /// 窗体ID
        /// </summary>
        public Guid? PAGE_FORM_ID { get; set; }
        /// <summary>
        /// 表单查询配置ID
        /// </summary>
        public Guid? PAGE_FORM_QUERY_ID { get; set; }

        /// <summary>
        /// 数据类型 
        /// </summary>
        [EnumName("PFDataTypeEnum")]
        public int DATA_TYPE { get; set; }
        /// <summary>
        /// 是否默认查询字段
        /// </summary>
        public bool IS_DEFAULT_QUERY { get; set; }
        /// <summary>
        /// 是否在标题显示
        /// </summary>
        public bool IS_TITLE { get; set; }

        /// <summary>
        /// 是否自定义字段
        /// </summary>
        public bool IS_CUSTOM { get; set; }
        /// <summary>
        /// 是否可多选（树组件）
        /// </summary>
        public bool MULTIPLE_CHOICE { get; set; }

        /// <summary>
        /// 是否默认显示字段
        /// </summary>
        public bool IS_DEFAULT_SHOW { get; set; }
        /// <summary>
        /// 条件默认值 PFOperateTypeEnum
        /// </summary>
        public string OP_DEFAULT { get; set; }
        /// <summary>
        /// 数值范围 
        /// </summary>
        public string DATA_VALUE { get; set; }

        /// <summary>枚举名称</summary>
        public string ENUM_NAME { get; set; }


        /// <summary>父子選擇聯動（樹組件使用）false:聯動  true：不聯動</summary>
        public bool CHECK_STRICTLY { get; set; }
        /// <summary>
        /// 顺序 
        /// </summary>
        public int NUM { get; set; }

        /// <summary>
        /// 是否是系统参数
        /// </summary>
        public bool? IS_SYS_PARAM { get; set; }

        [EnumName("FMCaseProcEnum")]
        /// <summary>
        /// 大小写 
        /// </summary>
        public int? CASE { get; set; }
        /// <summary>
        /// 是否必填
        /// </summary>
        public bool? IS_REQUIRE { get; set; }

        public string INPUT_ID_FIELD { 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 int INPUT_DATA_LEVEL { get; set; }
        /// <summary>
        /// 是否只允许选中叶子节点
        /// </summary>
        public bool IS_ONLY_CHECK_LEAF { get; set; }

        /// <summary>
        /// 获取数据的API地址
        /// </summary>
        public string INPUT_DATA_API { get; set; }
        /// <summary>
        /// 节点可选条件
        /// </summary>

        public string SELECT_CONDITION { get; set; }

        /// <summary>
        /// 窗体
        /// </summary>
        public virtual T_PF_FORM Nav_PageForm { get; set; }


        public virtual T_PF_FORM_QUERY Nav_PageFormQuery { get; set; }
        [Description("源ID")]
        public Guid? SRC_ID { get; set; }

        /// <summary>
        /// 控件类型值为 108 的时候的时间格式
        /// </summary>
        [Description("时间格式")]
        [DataFieldLength(50)]
        public string DATETIME_FORMATE { get; set; }
    }
}
