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.edu.course.batchcreate
    /// 
    public class OapiEduCourseBatchcreateRequest : BaseDingTalkRequest
    {
        /// 
        /// course_infos
        /// 
        public string CourseInfos { get; set; }
        public List CourseInfos_ { set { this.CourseInfos = TopUtils.ObjectToJson(value); } } 
        /// 
        /// 当前用户ID
        /// 
        public string OpUserid { get; set; }
        #region IDingTalkRequest Members
        public override string GetApiName()
        {
            return "dingtalk.oapi.edu.course.batchcreate";
        }
        public override string GetApiCallType()
        {
            return DingTalkConstants.CALL_TYPE_OAPI;
        }
        public override IDictionary GetParameters()
        {
            TopDictionary parameters = new TopDictionary();
            parameters.Add("course_infos", this.CourseInfos);
            parameters.Add("op_userid", this.OpUserid);
            if (this.otherParams != null)
            {
                parameters.AddAll(this.otherParams);
            }
            return parameters;
        }
        public override void Validate()
        {
            RequestValidator.ValidateRequired("course_infos", this.CourseInfos);
            RequestValidator.ValidateObjectMaxListSize("course_infos", this.CourseInfos, 999);
            RequestValidator.ValidateRequired("op_userid", this.OpUserid);
        }
	/// 
/// CourseOptionDomain Data Structure.
/// 
[Serializable]
public class CourseOptionDomain : TopObject
{
	        /// 
	        /// 课堂模式:1/6/12(支持多少人上台)
	        /// 
	        [XmlElement("online_mode")]
	        public string OnlineMode { get; set; }
	
	        /// 
	        /// 使用的平台:1(在线课堂)、2(在线课堂Pro)
	        /// 
	        [XmlElement("platform")]
	        public string Platform { get; set; }
	
	        /// 
	        /// 是否录制老师头像
	        /// 
	        [XmlElement("record_avatar")]
	        public string RecordAvatar { get; set; }
}
	/// 
/// CourseInfoDomain Data Structure.
/// 
[Serializable]
public class CourseInfoDomain : TopObject
{
	        /// 
	        /// 业务唯一键,用于保证课程的唯一性,防止重复创建
	        /// 
	        [XmlElement("biz_key")]
	        public string BizKey { get; set; }
	
	        /// 
	        /// 课程的结束时间,Unix毫秒时间戳
	        /// 
	        [XmlElement("end_time")]
	        public string EndTime { get; set; }
	
	        /// 
	        /// 课程介绍
	        /// 
	        [XmlElement("introduce")]
	        public string Introduce { get; set; }
	
	        /// 
	        /// 课程名称
	        /// 
	        [XmlElement("name")]
	        public string Name { get; set; }
	
	        /// 
	        /// 课程选项信息
	        /// 
	        [XmlElement("option")]
	        public CourseOptionDomain Option { get; set; }
	
	        /// 
	        /// 课程的开始时间,Unix毫秒时间戳
	        /// 
	        [XmlElement("start_time")]
	        public string StartTime { get; set; }
	
	        /// 
	        /// 老师的组织CorpId
	        /// 
	        [XmlElement("teacher_corpid")]
	        public string TeacherCorpid { get; set; }
	
	        /// 
	        /// 老师的用户ID
	        /// 
	        [XmlElement("teacher_userid")]
	        public string TeacherUserid { get; set; }
}
        #endregion
    }
}