using System;
using System.Collections.Generic;
using Top.Api.Util;
using Top.Api;
using Top.Api.DingTalk;
namespace DingTalk.Api.Request
{
///
/// TOP API: dingtalk.oapi.chat.create
///
public class OapiChatCreateRequest : BaseDingTalkRequest
{
///
/// 群禁言,0-默认,不禁言,1-全员禁言
///
public Nullable ChatBannedType { get; set; }
///
/// 群类型,2:企业群,0:普通群
///
public Nullable ConversationTag { get; set; }
///
/// 外部联系人成员列表
///
public List Extidlist { get; set; }
///
/// 群头像资源id
///
public string Icon { get; set; }
///
/// 管理类型,0-默认,所有人可管理,1-仅群主可管理
///
public Nullable ManagementType { get; set; }
///
/// @all 权限,0-默认,所有人,1-仅群主可@all
///
public Nullable MentionAllAuthority { get; set; }
///
/// 群名称
///
public string Name { get; set; }
///
/// 群主的userId
///
public string Owner { get; set; }
///
/// 群主类型,emp:企业员工,ext:外部联系人
///
public string OwnerType { get; set; }
///
/// 群可搜索,0-默认,不可搜索,1-可搜索
///
public Nullable Searchable { get; set; }
///
/// 新成员可查看100条聊天历史消息的类型,1:可查看,默认或0:不可查看
///
public Nullable ShowHistoryType { get; set; }
///
/// 群成员userId列表
///
public List Useridlist { get; set; }
///
/// 入群验证,0:不入群验证(默认) 1:入群验证
///
public Nullable ValidationType { get; set; }
#region IDingTalkRequest Members
public override string GetApiName()
{
return "dingtalk.oapi.chat.create";
}
public override string GetApiCallType()
{
return DingTalkConstants.CALL_TYPE_OAPI;
}
public override IDictionary GetParameters()
{
TopDictionary parameters = new TopDictionary();
parameters.Add("chatBannedType", this.ChatBannedType);
parameters.Add("conversationTag", this.ConversationTag);
parameters.Add("extidlist", TopUtils.ObjectToJson(this.Extidlist));
parameters.Add("icon", this.Icon);
parameters.Add("managementType", this.ManagementType);
parameters.Add("mentionAllAuthority", this.MentionAllAuthority);
parameters.Add("name", this.Name);
parameters.Add("owner", this.Owner);
parameters.Add("ownerType", this.OwnerType);
parameters.Add("searchable", this.Searchable);
parameters.Add("showHistoryType", this.ShowHistoryType);
parameters.Add("useridlist", TopUtils.ObjectToJson(this.Useridlist));
parameters.Add("validationType", this.ValidationType);
if (this.otherParams != null)
{
parameters.AddAll(this.otherParams);
}
return parameters;
}
public override void Validate()
{
RequestValidator.ValidateMaxListSize("extidlist", this.Extidlist, 20);
RequestValidator.ValidateMaxListSize("useridlist", this.Useridlist, 20);
}
#endregion
}
}