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.customerservice.session.create
    /// 
    public class OapiCustomerserviceSessionCreateRequest : BaseDingTalkRequest
    {
        /// 
        /// 新建会话参数
        /// 
        public string CreateSession { get; set; }
        public CreateSessionDTODomain CreateSession_ { set { this.CreateSession = TopUtils.ObjectToJson(value); } } 
        #region IDingTalkRequest Members
        public override string GetApiName()
        {
            return "dingtalk.oapi.customerservice.session.create";
        }
        public override string GetApiCallType()
        {
            return DingTalkConstants.CALL_TYPE_OAPI;
        }
        public override IDictionary GetParameters()
        {
            TopDictionary parameters = new TopDictionary();
            parameters.Add("create_session", this.CreateSession);
            if (this.otherParams != null)
            {
                parameters.AddAll(this.otherParams);
            }
            return parameters;
        }
        public override void Validate()
        {
            RequestValidator.ValidateRequired("create_session", this.CreateSession);
        }
	/// 
/// SessionSourceDTODomain Data Structure.
/// 
[Serializable]
public class SessionSourceDTODomain : TopObject
{
	        /// 
	        /// /**      * H5页面      */     H5(0),     /**      * APP内嵌的链接      */     APP(1),     /**      * 微信小程序      */     WE_CHAT_APPLETS(2),     /**      * 微信公众号      */     WE_CHAT_OFFICIAL_ACCOUNTS(3)
	        /// 
	        [XmlElement("channel")]
	        public string Channel { get; set; }
	
	        /// 
	        /// 发起咨询的头像
	        /// 
	        [XmlElement("channel_avatar_url")]
	        public string ChannelAvatarUrl { get; set; }
	
	        /// 
	        /// 渠道名称
	        /// 
	        [XmlElement("channel_nick")]
	        public string ChannelNick { get; set; }
	
	        /// 
	        /// 渠道会员id
	        /// 
	        [XmlElement("channel_uid")]
	        public string ChannelUid { get; set; }
	
	        /// 
	        /// 渠道会员所属的系统
	        /// 
	        [XmlElement("channel_user_source")]
	        public string ChannelUserSource { get; set; }
	
	        /// 
	        /// 会员id
	        /// 
	        [XmlElement("cms_id")]
	        public string CmsId { get; set; }
	
	        /// 
	        /// 会话结束时间
	        /// 
	        [XmlElement("session_end_time")]
	        public Nullable SessionEndTime { get; set; }
	
	        /// 
	        /// 会话来源
	        /// 
	        [XmlElement("session_source")]
	        public string SessionSource { get; set; }
	
	        /// 
	        /// 会话开始时间
	        /// 
	        [XmlElement("session_start_time")]
	        public Nullable SessionStartTime { get; set; }
	
	        /// 
	        /// 0会话中,1已结束
	        /// 
	        [XmlElement("session_status")]
	        public Nullable SessionStatus { get; set; }
	
	        /// 
	        /// 会话id
	        /// 
	        [XmlElement("sid")]
	        public string Sid { get; set; }
	
	        /// 
	        /// 会话摘要
	        /// 
	        [XmlElement("summary")]
	        public string Summary { get; set; }
}
	/// 
/// SessionTargetDTODomain Data Structure.
/// 
[Serializable]
public class SessionTargetDTODomain : TopObject
{
	        /// 
	        /// 业务单元id
	        /// 
	        [XmlElement("bu_id")]
	        public string BuId { get; set; }
	
	        /// 
	        /// 钉钉的corpId
	        /// 
	        [XmlElement("ding_corp_id")]
	        public string DingCorpId { get; set; }
	
	        /// 
	        /// 实例的id
	        /// 
	        [XmlElement("open_instance_id")]
	        public string OpenInstanceId { get; set; }
	
	        /// 
	        /// 1,智能客服;1001,经济体版本
	        /// 
	        [XmlElement("production_type")]
	        public Nullable ProductionType { get; set; }
	
	        /// 
	        /// 服务编号
	        /// 
	        [XmlElement("service_id")]
	        public string ServiceId { get; set; }
	
	        /// 
	        /// 会话来源
	        /// 
	        [XmlElement("session_source")]
	        public string SessionSource { get; set; }
}
	/// 
/// CreateSessionDTODomain Data Structure.
/// 
[Serializable]
public class CreateSessionDTODomain : TopObject
{
	        /// 
	        /// 会员来源
	        /// 
	        [XmlElement("source")]
	        public SessionSourceDTODomain Source { get; set; }
	
	        /// 
	        /// 会话目标
	        /// 
	        [XmlElement("target")]
	        public SessionTargetDTODomain Target { get; set; }
}
        #endregion
    }
}