using System;
using System.Xml.Serialization;
using System.Collections.Generic;
using Top.Api.Util;
using Top.Api;
using Top.Api.DingTalk;
namespace DingTalk.Api.Request
{
    /// 
    /// TOP API: dingtalk.oapi.collection.schema.create
    /// 
    public class OapiCollectionSchemaCreateRequest : BaseDingTalkRequest
    {
        /// 
        /// 根请求
        /// 
        public string Request { get; set; }
        public SaveFormSchemaRequestDomain Request_ { set { this.Request = TopUtils.ObjectToJson(value); } } 
        #region IDingTalkRequest Members
        public override string GetApiName()
        {
            return "dingtalk.oapi.collection.schema.create";
        }
        public override string GetApiCallType()
        {
            return DingTalkConstants.CALL_TYPE_OAPI;
        }
        public override IDictionary GetParameters()
        {
            TopDictionary parameters = new TopDictionary();
            parameters.Add("request", this.Request);
            if (this.otherParams != null)
            {
                parameters.AddAll(this.otherParams);
            }
            return parameters;
        }
        public override void Validate()
        {
            RequestValidator.ValidateRequired("request", this.Request);
        }
	/// 
/// ProcessVisibleValueVoDomain Data Structure.
/// 
[Serializable]
public class ProcessVisibleValueVoDomain : TopObject
{
	        /// 
	        /// 类型
	        /// 
	        [XmlElement("visible_type")]
	        public Nullable VisibleType { get; set; }
	
	        /// 
	        /// 值
	        /// 
	        [XmlElement("visible_value")]
	        public string VisibleValue { get; set; }
}
	/// 
/// FormSchemaSettingVoDomain Data Structure.
/// 
[Serializable]
public class FormSchemaSettingVoDomain : TopObject
{
	        /// 
	        /// 业务类型
	        /// 
	        [XmlElement("biz_type")]
	        public Nullable BizType { get; set; }
	
	        /// 
	        /// 填写结束时间/循环表单的循环结束时间
	        /// 
	        [XmlElement("end_time")]
	        public Nullable EndTime { get; set; }
	
	        /// 
	        /// 表单类型
	        /// 
	        [XmlElement("form_type")]
	        public Nullable FormType { get; set; }
	
	        /// 
	        /// 循环周期
	        /// 
	        [XmlArray("loop_day_of_weeks")]
	        [XmlArrayItem("number")]
	        public List LoopDayOfWeeks { get; set; }
	
	        /// 
	        /// 提醒时间
	        /// 
	        [XmlElement("loop_time")]
	        public string LoopTime { get; set; }
	
	        /// 
	        /// 回复时间开关/循环周期启用
	        /// 
	        [XmlElement("reply_time")]
	        public Nullable ReplyTime { get; set; }
}
	/// 
/// BehaviorTargetDomain Data Structure.
/// 
[Serializable]
public class BehaviorTargetDomain : TopObject
{
	        /// 
	        /// 行为
	        /// 
	        [XmlElement("behavior")]
	        public string Behavior { get; set; }
	
	        /// 
	        /// 控件ID
	        /// 
	        [XmlElement("field_id")]
	        public string FieldId { get; set; }
}
	/// 
/// BehaviorLinkageVoDomain Data Structure.
/// 
[Serializable]
public class BehaviorLinkageVoDomain : TopObject
{
	        /// 
	        /// 选项级联目标
	        /// 
	        [XmlArray("targets")]
	        [XmlArrayItem("behavior_target")]
	        public List Targets { get; set; }
	
	        /// 
	        /// 值
	        /// 
	        [XmlElement("value")]
	        public string Value { get; set; }
}
	/// 
/// ComponentPropOptionVoDomain Data Structure.
/// 
[Serializable]
public class ComponentPropOptionVoDomain : TopObject
{
	        /// 
	        /// 名称
	        /// 
	        [XmlElement("key")]
	        public string Key { get; set; }
	
	        /// 
	        /// 选项值
	        /// 
	        [XmlElement("value")]
	        public string Value { get; set; }
}
	/// 
/// ComponentMatrixDefVoDomain Data Structure.
/// 
[Serializable]
public class ComponentMatrixDefVoDomain : TopObject
{
	        /// 
	        /// 别名
	        /// 
	        [XmlElement("alias")]
	        public string Alias { get; set; }
	
	        /// 
	        /// 主键
	        /// 
	        [XmlElement("key")]
	        public string Key { get; set; }
	
	        /// 
	        /// 名称
	        /// 
	        [XmlElement("name")]
	        public string Name { get; set; }
}
	/// 
/// ComponentPropVoDomain Data Structure.
/// 
[Serializable]
public class ComponentPropVoDomain : TopObject
{
	        /// 
	        /// 选项级联属性
	        /// 
	        [XmlArray("behavior_linkage")]
	        [XmlArrayItem("behavior_linkage_vo")]
	        public List BehaviorLinkage { get; set; }
	
	        /// 
	        /// 系统别名
	        /// 
	        [XmlElement("biz_alias")]
	        public string BizAlias { get; set; }
	
	        /// 
	        /// 矩阵表单组件列定义
	        /// 
	        [XmlArray("cols")]
	        [XmlArrayItem("component_matrix_def_vo")]
	        public List Cols { get; set; }
	
	        /// 
	        /// 控件id
	        /// 
	        [XmlElement("id")]
	        public string Id { get; set; }
	
	        /// 
	        /// 标签
	        /// 
	        [XmlElement("label")]
	        public string Label { get; set; }
	
	        /// 
	        /// 带选项的组件的option
	        /// 
	        [XmlArray("options")]
	        [XmlArrayItem("component_prop_option_vo")]
	        public List Options { get; set; }
	
	        /// 
	        /// 占位符
	        /// 
	        [XmlElement("placeholder")]
	        public string Placeholder { get; set; }
	
	        /// 
	        /// 是否必填
	        /// 
	        [XmlElement("required")]
	        public Nullable Required { get; set; }
	
	        /// 
	        /// 矩阵表单组件行定义
	        /// 
	        [XmlArray("rows")]
	        [XmlArrayItem("component_matrix_def_vo")]
	        public List Rows { get; set; }
}
	/// 
/// FormComponentVoDomain Data Structure.
/// 
[Serializable]
public class FormComponentVoDomain : TopObject
{
	        /// 
	        /// 控件名称
	        /// 
	        [XmlElement("component_name")]
	        public string ComponentName { get; set; }
	
	        /// 
	        /// 控件属性
	        /// 
	        [XmlElement("props")]
	        public ComponentPropVoDomain Props { get; set; }
}
	/// 
/// FormContentVoDomain Data Structure.
/// 
[Serializable]
public class FormContentVoDomain : TopObject
{
	        /// 
	        /// 控件数组
	        /// 
	        [XmlArray("items")]
	        [XmlArrayItem("form_component_vo")]
	        public List Items { get; set; }
}
	/// 
/// SaveFormSchemaRequestDomain Data Structure.
/// 
[Serializable]
public class SaveFormSchemaRequestDomain : TopObject
{
	        /// 
	        /// 控件字符串
	        /// 
	        [XmlElement("content")]
	        public string Content { get; set; }
	
	        /// 
	        /// 表单设置
	        /// 
	        [XmlElement("custom_setting")]
	        public FormSchemaSettingVoDomain CustomSetting { get; set; }
	
	        /// 
	        /// 控件对象
	        /// 
	        [XmlElement("form_content")]
	        public FormContentVoDomain FormContent { get; set; }
	
	        /// 
	        /// 图标
	        /// 
	        [XmlElement("icon")]
	        public string Icon { get; set; }
	
	        /// 
	        /// 提示
	        /// 
	        [XmlElement("memo")]
	        public string Memo { get; set; }
	
	        /// 
	        /// 表单名称
	        /// 
	        [XmlElement("name")]
	        public string Name { get; set; }
	
	        /// 
	        /// 可见范围
	        /// 
	        [XmlArray("process_visible_list")]
	        [XmlArrayItem("process_visible_value_vo")]
	        public List ProcessVisibleList { get; set; }
	
	        /// 
	        /// 用户id
	        /// 
	        [XmlElement("userid")]
	        public string Userid { get; set; }
}
        #endregion
    }
}