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

namespace IRaCIS.Core.Application.ViewModel
{
    /// <summary> FrontAuditConfigView  列表视图模型 </summary>
    public class FrontAuditConfigView:FrontAuditConfig
    {
        public string ChildrenTypeValue { get; set; } = string.Empty;
        public string ChildrenTypeValueCN { get; set; } = string.Empty;

        public string ModuleTypeValue { get; set; } = string.Empty;
        public string ModuleTypeValueCN { get; set; } = string.Empty;

        public string OptTypeValue { get; set; } = string.Empty;
        public string OptTypeValueCN { get; set; } = string.Empty;



        public string ObjectTypeValue { get; set; } = string.Empty;

        public string ObjectTypeValueCN { get; set; } = string.Empty;



    }

    public class BatchAddFrontAudit
    {
        [NotDefault]
        public Guid ParentId { get; set; }

        public List<TableList> Columns { get; set; }
    }

    public class GetChildrenItem
    {
      

        public Guid Id { get; set; }
    }

    /// <summary>
    /// 完全复制对象
    /// </summary>
    public class FullyReplicated
    {
        /// <summary>
        /// 数据来源对象
        /// </summary>
        public Guid FromItemId { get; set; }

        /// <summary>
        /// 要赋值到的对象
        /// </summary>
        public Guid ToItemId { get; set; }


    }

    /// <summary>
    /// 复制其他对象到当前对象
    /// </summary>
    public class CopyOtherToThisItem
    {
        /// <summary>
        /// 数据源Guids
        /// </summary>
        public List<Guid?> DataSourceGuids { get; set; }=new List<Guid?>(){ };

        /// <summary>
        /// 添加对象的Guid
        /// </summary>
        public Guid AddItemGuid { get; set; }
    }

    public class GetDescriptionByModuleTypeDto
    {
        public Guid ModuleTypeId { get; set; }
    }

    ///<summary>FrontAuditConfigQuery  列表查询参数模型</summary>
    public class FrontAuditConfigQuery
    {
        ///<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> Code</summary>
        public string Code { get; set; } = string.Empty;

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

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

        public Guid? ModuleTypeId { get; set; }

        public Guid? ObjectTypeId { get; set; }

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

    }

    public class ChangeFrontAuditSortDto
    {
        public List<FrontAuditSort> SortDataList { get; set; }
    }

    public class FrontAuditSort
    {
        public Guid Id { get; set; }

        public int Sort { get; set; }

    }



    public class FrontAuditConfigDTO: FrontAuditConfigAddOrEdit
    {

    }


    ///<summary> FrontAuditConfigAddOrEdit  列表查询参数模型</summary>
    public class FrontAuditConfigAddOrEdit
    {
        public Guid? Id { get; set; }
        public string Value { get; set; } = string.Empty;
        public string ValueCN { get; set; } = string.Empty;
        public string Description { get; set; } = string.Empty;
        public DateTime CreateTime { get; set; }
        public Guid CreateUserId { get; set; }
        public DateTime UpdateTime { get; set; }
        public Guid UpdateUserId { get; set; }
        public string Code { get; set; } = string.Empty;
        public Guid? ParentId { get; set; }
        public bool IsEnable { get; set; }
        public Guid? ModuleTypeId { get; set; }
        public Guid? OptTypeId { get; set; } 
        public Guid? ChildrenTypeId { get; set; } 

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

        public int? IsShowParent { get; set; }

        public int? Sort { get; set; }

        public string EnumList { get; set; } = string.Empty;


        public string EnumType { get; set; } = string.Empty;

        public Guid? ObjectTypeId { get; set; } 

        public bool? IsShowByTrialConfig { get; set; }

        public string TrialConfigRelyFieldName { get; set; } = string.Empty;


        /// <summary>
		/// 是否向前站位
		/// </summary>
		public bool? IsForwardPosition { get; set; }

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



        /// <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 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>
        /// 外键Table
        /// </summary>

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

        /// <summary>
        /// 外键Ke
        /// </summary>

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

        /// <summary>
        ///外键Text
        /// </summary>

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


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

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





        /// <summary>
        /// 是否为特殊类型
        /// </summary>

        public bool? IsSpecialType { get; set; }
        public bool IsConfig { get; set; }
        public string DictionaryKey { get; set; } = string.Empty;




        //byzhouahng

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

        public UrlConfig UrlConfig { get; set; } = new UrlConfig();
        public List<TableConfig> TableConfigList { get; set; } = new List<TableConfig>();

    }


}