feat(work): 新增客户联系规则组相关接口

This commit is contained in:
Fu Diwei
2021-08-19 16:58:37 +08:00
parent 8337ea6017
commit 91af6a61e4
21 changed files with 1225 additions and 0 deletions

View File

@@ -1043,5 +1043,209 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGetSubscribeModeResponse>(flurlReq, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGetSubscribeModeResponse>(flurlReq, cancellationToken: cancellationToken);
} }
#endregion #endregion
#region CustomerStrategy
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/list 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactCustomerStrategyListResponse> ExecuteCgibinExternalContactCustomerStrategyListAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyListRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "customer_strategy", "list")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactCustomerStrategyListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/get 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactCustomerStrategyGetResponse> ExecuteCgibinExternalContactCustomerStrategyGetAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyGetRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "customer_strategy", "get")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactCustomerStrategyGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/get_range 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactCustomerStrategyGetRangeResponse> ExecuteCgibinExternalContactCustomerStrategyGetRangeAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyGetRangeRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "customer_strategy", "get_range")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactCustomerStrategyGetRangeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/create 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactCustomerStrategyCreateResponse> ExecuteCgibinExternalContactCustomerStrategyCreateAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyCreateRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "customer_strategy", "create")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactCustomerStrategyCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/edit 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactCustomerStrategyEditResponse> ExecuteCgibinExternalContactCustomerStrategyEditAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyEditRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "customer_strategy", "edit")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactCustomerStrategyEditResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/del 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactCustomerStrategyDeleteResponse> ExecuteCgibinExternalContactCustomerStrategyDeleteAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyDeleteRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "customer_strategy", "del")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactCustomerStrategyDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region StrategyTag
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_strategy_tag_list 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94882 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactGetStrategyTagListResponse> ExecuteCgibinExternalContactGetStrategyTagListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetStrategyTagListRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "get_strategy_tag_list")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGetStrategyTagListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/add_strategy_tag 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94882 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactAddStrategyTagResponse> ExecuteCgibinExternalContactAddStrategyTagAsync(this WechatWorkClient client, Models.CgibinExternalContactAddStrategyTagRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "add_strategy_tag")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactAddStrategyTagResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/edit_strategy_tag 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94882 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactEditStrategyTagResponse> ExecuteCgibinExternalContactEditStrategyTagAsync(this WechatWorkClient client, Models.CgibinExternalContactEditStrategyTagRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "edit_strategy_tag")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactEditStrategyTagResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/del_strategy_tag 接口。</para>
/// <para>REF: https://work.weixin.qq.com/api/doc/90000/90135/94882 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactDeleteStrategyTagResponse> ExecuteCgibinExternalContactDeleteStrategyTagAsync(this WechatWorkClient client, Models.CgibinExternalContactDeleteStrategyTagRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "del_strategy_tag")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactDeleteStrategyTagResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
} }
} }

View File

@@ -0,0 +1,216 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/create 接口的请求。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyCreateRequest : WechatWorkRequest
{
public static class Types
{
public class Privilege
{
/// <summary>
/// 获取或设置是否可以查看客户列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_customer_list")]
[System.Text.Json.Serialization.JsonPropertyName("view_customer_list")]
public bool? EnableViewCustomerList { get; set; }
/// <summary>
/// 获取或设置是否可以查看客户统计数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_customer_data")]
[System.Text.Json.Serialization.JsonPropertyName("view_customer_data")]
public bool? EnableViewCustomerData { get; set; }
/// <summary>
/// 获取或设置是否可以查看群聊列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_room_list")]
[System.Text.Json.Serialization.JsonPropertyName("view_room_list")]
public bool? EnableViewRoomList { get; set; }
/// <summary>
/// 获取或设置是否可以使用联系我。
/// </summary>
[Newtonsoft.Json.JsonProperty("contact_me")]
[System.Text.Json.Serialization.JsonPropertyName("contact_me")]
public bool? EnableContactMe { get; set; }
/// <summary>
/// 获取或设置是否可以加入群聊。
/// </summary>
[Newtonsoft.Json.JsonProperty("join_room")]
[System.Text.Json.Serialization.JsonPropertyName("join_room")]
public bool? EnableJoinRoom { get; set; }
/// <summary>
/// 获取或设置是否可以分享客户给其他成员。
/// </summary>
[Newtonsoft.Json.JsonProperty("share_customer")]
[System.Text.Json.Serialization.JsonPropertyName("share_customer")]
public bool? EnableShareCustomer { get; set; }
/// <summary>
/// 获取或设置是否可以分配离职成员客户。
/// </summary>
[Newtonsoft.Json.JsonProperty("oper_resign_customer")]
[System.Text.Json.Serialization.JsonPropertyName("oper_resign_customer")]
public bool? EnableResignCustomer { get; set; }
/// <summary>
/// 获取或设置是否可以分配离职成员客户群。
/// </summary>
[Newtonsoft.Json.JsonProperty("oper_resign_group")]
[System.Text.Json.Serialization.JsonPropertyName("oper_resign_group")]
public bool? EnableResignGroup { get; set; }
/// <summary>
/// 获取或设置是否可以给企业客户发送消息。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_customer_msg")]
[System.Text.Json.Serialization.JsonPropertyName("send_customer_msg")]
public bool? EnableSendCustomerMessage { get; set; }
/// <summary>
/// 获取或设置是否可以配置欢迎语。
/// </summary>
[Newtonsoft.Json.JsonProperty("edit_welcome_msg")]
[System.Text.Json.Serialization.JsonPropertyName("edit_welcome_msg")]
public bool? EnableEditWelcomeMessage { get; set; }
/// <summary>
/// 获取或设置是否可以查看成员联系客户统计。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_behavior_data")]
[System.Text.Json.Serialization.JsonPropertyName("view_behavior_data")]
public bool? EnableViewBehaviorData { get; set; }
/// <summary>
/// 获取或设置是否可以查看群聊数据统计。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_room_data")]
[System.Text.Json.Serialization.JsonPropertyName("view_room_data")]
public bool? EnableViewRoomData { get; set; }
/// <summary>
/// 获取或设置是否可以发送消息到企业的客户群。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_group_msg")]
[System.Text.Json.Serialization.JsonPropertyName("send_group_msg")]
public bool? EnableSendGroupMessage { get; set; }
/// <summary>
/// 获取或设置是否可以对企业客户群进行去重。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_deduplication")]
[System.Text.Json.Serialization.JsonPropertyName("room_deduplication")]
public bool? EnableRoomDeduplication { get; set; }
/// <summary>
/// 获取或设置是否可以配置快捷回复。
/// </summary>
[Newtonsoft.Json.JsonProperty("rapid_reply")]
[System.Text.Json.Serialization.JsonPropertyName("rapid_reply")]
public bool? EnableRapidReply { get; set; }
/// <summary>
/// 获取或设置是否可以转接在职成员的客户。
/// </summary>
[Newtonsoft.Json.JsonProperty("onjob_customer_transfer")]
[System.Text.Json.Serialization.JsonPropertyName("onjob_customer_transfer")]
public bool? EnableOnJobCustomerTransfer { get; set; }
/// <summary>
/// 获取或设置是否可以编辑企业成员防骚扰规则。
/// </summary>
[Newtonsoft.Json.JsonProperty("edit_anti_spam_rule")]
[System.Text.Json.Serialization.JsonPropertyName("edit_anti_spam_rule")]
public bool? EnableEditAntiSpamRule { get; set; }
/// <summary>
/// 获取或设置是否可以导出客户列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("export_customer_list")]
[System.Text.Json.Serialization.JsonPropertyName("export_customer_list")]
public bool? EnableExportCustomerList { get; set; }
/// <summary>
/// 获取或设置是否可以导出成员客户统计。
/// </summary>
[Newtonsoft.Json.JsonProperty("export_customer_data")]
[System.Text.Json.Serialization.JsonPropertyName("export_customer_data")]
public bool? EnableExportCustomerData { get; set; }
/// <summary>
/// 获取或设置是否可以导出客户群列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("export_customer_group_list")]
[System.Text.Json.Serialization.JsonPropertyName("export_customer_group_list")]
public bool? EnableExportCustomerGroupList { get; set; }
}
public class Range
{
/// <summary>
/// 获取或设置节点类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { get; set; }
/// <summary>
/// 获取或设置管理范围内配置的成员 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置管理范围内配置的部门 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("partyid")]
[System.Text.Json.Serialization.JsonPropertyName("partyid")]
public int? DepartmentId { get; set; }
}
}
/// <summary>
/// 获取或设置父规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("parent_id")]
[System.Text.Json.Serialization.JsonPropertyName("parent_id")]
public int? ParentStrategyId { get; set; }
/// <summary>
/// 获取或设置规则组名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_name")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_name")]
public string Name { get; set; } = string.Empty;
/// <summary>
/// 获取或设置管理员 UserId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("admin_list")]
[System.Text.Json.Serialization.JsonPropertyName("admin_list")]
public IList<string> AdminUserIdList { get; set; } = new List<string>();
/// <summary>
/// 获取或设置权限信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("privilege")]
[System.Text.Json.Serialization.JsonPropertyName("privilege")]
public Types.Privilege Privilege { get; set; } = new Types.Privilege();
/// <summary>
/// 获取或设置规则组范围列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("range")]
[System.Text.Json.Serialization.JsonPropertyName("range")]
public IList<Types.Range> RangeList { get; set; } = new List<Types.Range>();
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/create 接口的响应。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyCreateResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/del 接口的请求。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyDeleteRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/del 接口的响应。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyDeleteResponse : WechatWorkResponse
{
}
}

View File

@@ -0,0 +1,64 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/edit 接口的请求。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyEditRequest : WechatWorkRequest
{
public static class Types
{
public class Privilege : CgibinExternalContactCustomerStrategyCreateRequest.Types.Privilege
{
}
public class Range : CgibinExternalContactCustomerStrategyCreateRequest.Types.Range
{
}
}
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
/// <summary>
/// 获取或设置规则组名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_name")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_name")]
public string? Name { get; set; }
/// <summary>
/// 获取或设置管理员 UserId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("admin_list")]
[System.Text.Json.Serialization.JsonPropertyName("admin_list")]
public IList<string>? AdminUserIdList { get; set; }
/// <summary>
/// 获取或设置权限信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("privilege")]
[System.Text.Json.Serialization.JsonPropertyName("privilege")]
public Types.Privilege? Privilege { get; set; }
/// <summary>
/// 获取或设置要添加的规则组范围列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("range_add")]
[System.Text.Json.Serialization.JsonPropertyName("range_add")]
public IList<Types.Range>? AddRangeList { get; set; }
/// <summary>
/// 获取或设置要删除的规则组范围列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("range_del")]
[System.Text.Json.Serialization.JsonPropertyName("range_del")]
public IList<Types.Range>? DeleteRangeList { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/edit 接口的响应。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyEditResponse : WechatWorkResponse
{
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/get_range 接口的请求。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyGetRangeRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? NextCursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/get_range 接口的响应。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyGetRangeResponse : WechatWorkResponse
{
public static class Types
{
public class Range
{
/// <summary>
/// 获取或设置节点类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { get; set; }
/// <summary>
/// 获取或设置管理范围内配置的成员 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置管理范围内配置的部门 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("partyid")]
[System.Text.Json.Serialization.JsonPropertyName("partyid")]
public int? DepartmentId { get; set; }
}
}
/// <summary>
/// 获取或设置规则组范围列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("range")]
[System.Text.Json.Serialization.JsonPropertyName("range")]
public Types.Range[] RangeList { get; set; } = default!;
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/get 接口的请求。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyGetRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
}
}

View File

@@ -0,0 +1,212 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/get 接口的响应。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyGetResponse : WechatWorkResponse
{
public static class Types
{
public class Strategy
{
public static class Types
{
public class Privilege
{
/// <summary>
/// 获取或设置是否可以查看客户列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_customer_list")]
[System.Text.Json.Serialization.JsonPropertyName("view_customer_list")]
public bool EnableViewCustomerList { get; set; }
/// <summary>
/// 获取或设置是否可以查看客户统计数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_customer_data")]
[System.Text.Json.Serialization.JsonPropertyName("view_customer_data")]
public bool EnableViewCustomerData { get; set; }
/// <summary>
/// 获取或设置是否可以查看群聊列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_room_list")]
[System.Text.Json.Serialization.JsonPropertyName("view_room_list")]
public bool EnableViewRoomList { get; set; }
/// <summary>
/// 获取或设置是否可以使用联系我。
/// </summary>
[Newtonsoft.Json.JsonProperty("contact_me")]
[System.Text.Json.Serialization.JsonPropertyName("contact_me")]
public bool EnableContactMe { get; set; }
/// <summary>
/// 获取或设置是否可以加入群聊。
/// </summary>
[Newtonsoft.Json.JsonProperty("join_room")]
[System.Text.Json.Serialization.JsonPropertyName("join_room")]
public bool EnableJoinRoom { get; set; }
/// <summary>
/// 获取或设置是否可以分享客户给其他成员。
/// </summary>
[Newtonsoft.Json.JsonProperty("share_customer")]
[System.Text.Json.Serialization.JsonPropertyName("share_customer")]
public bool EnableShareCustomer { get; set; }
/// <summary>
/// 获取或设置是否可以分配离职成员客户。
/// </summary>
[Newtonsoft.Json.JsonProperty("oper_resign_customer")]
[System.Text.Json.Serialization.JsonPropertyName("oper_resign_customer")]
public bool EnableResignCustomer { get; set; }
/// <summary>
/// 获取或设置是否可以分配离职成员客户群。
/// </summary>
[Newtonsoft.Json.JsonProperty("oper_resign_group")]
[System.Text.Json.Serialization.JsonPropertyName("oper_resign_group")]
public bool EnableResignGroup { get; set; }
/// <summary>
/// 获取或设置是否可以给企业客户发送消息。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_customer_msg")]
[System.Text.Json.Serialization.JsonPropertyName("send_customer_msg")]
public bool EnableSendCustomerMessage { get; set; }
/// <summary>
/// 获取或设置是否可以配置欢迎语。
/// </summary>
[Newtonsoft.Json.JsonProperty("edit_welcome_msg")]
[System.Text.Json.Serialization.JsonPropertyName("edit_welcome_msg")]
public bool EnableEditWelcomeMessage { get; set; }
/// <summary>
/// 获取或设置是否可以查看成员联系客户统计。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_behavior_data")]
[System.Text.Json.Serialization.JsonPropertyName("view_behavior_data")]
public bool EnableViewBehaviorData { get; set; }
/// <summary>
/// 获取或设置是否可以查看群聊数据统计。
/// </summary>
[Newtonsoft.Json.JsonProperty("view_room_data")]
[System.Text.Json.Serialization.JsonPropertyName("view_room_data")]
public bool EnableViewRoomData { get; set; }
/// <summary>
/// 获取或设置是否可以发送消息到企业的客户群。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_group_msg")]
[System.Text.Json.Serialization.JsonPropertyName("send_group_msg")]
public bool EnableSendGroupMessage { get; set; }
/// <summary>
/// 获取或设置是否可以对企业客户群进行去重。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_deduplication")]
[System.Text.Json.Serialization.JsonPropertyName("room_deduplication")]
public bool EnableRoomDeduplication { get; set; }
/// <summary>
/// 获取或设置是否可以配置快捷回复。
/// </summary>
[Newtonsoft.Json.JsonProperty("rapid_reply")]
[System.Text.Json.Serialization.JsonPropertyName("rapid_reply")]
public bool EnableRapidReply { get; set; }
/// <summary>
/// 获取或设置是否可以转接在职成员的客户。
/// </summary>
[Newtonsoft.Json.JsonProperty("onjob_customer_transfer")]
[System.Text.Json.Serialization.JsonPropertyName("onjob_customer_transfer")]
public bool EnableOnJobCustomerTransfer { get; set; }
/// <summary>
/// 获取或设置是否可以编辑企业成员防骚扰规则。
/// </summary>
[Newtonsoft.Json.JsonProperty("edit_anti_spam_rule")]
[System.Text.Json.Serialization.JsonPropertyName("edit_anti_spam_rule")]
public bool EnableEditAntiSpamRule { get; set; }
/// <summary>
/// 获取或设置是否可以导出客户列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("export_customer_list")]
[System.Text.Json.Serialization.JsonPropertyName("export_customer_list")]
public bool EnableExportCustomerList { get; set; }
/// <summary>
/// 获取或设置是否可以导出成员客户统计。
/// </summary>
[Newtonsoft.Json.JsonProperty("export_customer_data")]
[System.Text.Json.Serialization.JsonPropertyName("export_customer_data")]
public bool EnableExportCustomerData { get; set; }
/// <summary>
/// 获取或设置是否可以导出客户群列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("export_customer_group_list")]
[System.Text.Json.Serialization.JsonPropertyName("export_customer_group_list")]
public bool EnableExportCustomerGroupList { get; set; }
}
}
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
/// <summary>
/// 获取或设置父规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("parent_id")]
[System.Text.Json.Serialization.JsonPropertyName("parent_id")]
public int ParentStrategyId { get; set; }
/// <summary>
/// 获取或设置规则组名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_name")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_name")]
public string Name { get; set; } = default!;
/// <summary>
/// 获取或设置管理员 UserId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("admin_list")]
[System.Text.Json.Serialization.JsonPropertyName("admin_list")]
public string[] AdminUserIdList { get; set; } = default!;
/// <summary>
/// 获取或设置权限信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("privilege")]
[System.Text.Json.Serialization.JsonPropertyName("privilege")]
public Types.Privilege Privilege { get; set; } = default!;
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置规则组信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy")]
[System.Text.Json.Serialization.JsonPropertyName("strategy")]
public Types.Strategy Strategy { get; set; } = default!;
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/list 接口的请求。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyListRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? NextCursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/customer_strategy/list 接口的响应。</para>
/// </summary>
public class CgibinExternalContactCustomerStrategyListResponse : WechatWorkResponse
{
public static class Types
{
public class Strategy
{
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
}
}
/// <summary>
/// 获取或设置规则组列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy")]
[System.Text.Json.Serialization.JsonPropertyName("strategy")]
public Types.Strategy[] StrategyList { get; set; } = default!;
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/add_strategy_tag 接口的请求。</para>
/// </summary>
public class CgibinExternalContactAddStrategyTagRequest : WechatWorkRequest
{
public static class Types
{
public class Tag
{
/// <summary>
/// 获取或设置企业标签名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
/// <summary>
/// 获取或设置次序值。
/// </summary>
[Newtonsoft.Json.JsonProperty("order")]
[System.Text.Json.Serialization.JsonPropertyName("order")]
public int? Order { get; set; }
}
}
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
/// <summary>
/// 获取或设置企业标签分组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public string? TagGroupId { get; set; }
/// <summary>
/// 获取或设置企业标签分组名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("group_name")]
[System.Text.Json.Serialization.JsonPropertyName("group_name")]
public string? TagGroupName { get; set; }
/// <summary>
/// 获取或设置企业标签分组次序值。
/// </summary>
[Newtonsoft.Json.JsonProperty("order")]
[System.Text.Json.Serialization.JsonPropertyName("order")]
public int? TagGroupOrder { get; set; }
/// <summary>
/// 获取或设置企业标签列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("tag")]
[System.Text.Json.Serialization.JsonPropertyName("tag")]
public IList<Types.Tag> TagList { get; set; } = new List<Types.Tag>();
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/add_strategy_tag 接口的响应。</para>
/// </summary>
public class CgibinExternalContactAddStrategyTagResponse : WechatWorkResponse
{
public static class Types
{
public class TagGroup : CgibinExternalContactGetStrategyTagListResponse.Types.TagGroup
{
}
}
/// <summary>
/// 获取或设置企业标签信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("tag_group")]
[System.Text.Json.Serialization.JsonPropertyName("tag_group")]
public Types.TagGroup TagGroup { get; set; } = default!;
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/del_strategy_tag 接口的请求。</para>
/// </summary>
public class CgibinExternalContactDeleteStrategyTagRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置企业标签 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("tag_id")]
[System.Text.Json.Serialization.JsonPropertyName("tag_id")]
public IList<string>? TagIdList { get; set; }
/// <summary>
/// 获取或设置企业标签分组 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public IList<string>? TagGroupIdList { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/del_strategy_tag 接口的响应。</para>
/// </summary>
public class CgibinExternalContactDeleteStrategyTagResponse : WechatWorkResponse
{
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/edit_strategy_tag 接口的请求。</para>
/// </summary>
public class CgibinExternalContactEditStrategyTagRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置企业标签或标签分组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("id")]
[System.Text.Json.Serialization.JsonPropertyName("id")]
public string TagOrGroupId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置企业标签或标签分组名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string? TagOrGroupName { get; set; }
/// <summary>
/// 获取或设置企业标签或标签分组次序值。
/// </summary>
[Newtonsoft.Json.JsonProperty("order")]
[System.Text.Json.Serialization.JsonPropertyName("order")]
public int? TagOrGroupOrder { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/edit_strategy_tag 接口的响应。</para>
/// </summary>
public class CgibinExternalContactEditStrategyTagResponse : WechatWorkResponse
{
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/get_strategy_tag_list 接口的请求。</para>
/// </summary>
public class CgibinExternalContactGetStrategyTagListRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int? StrategyId { get; set; }
/// <summary>
/// 获取或设置企业标签 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("tag_id")]
[System.Text.Json.Serialization.JsonPropertyName("tag_id")]
public IList<string>? TagIdList { get; set; }
/// <summary>
/// 获取或设置企业标签分组 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public IList<string>? TagGroupIdList { get; set; }
}
}

View File

@@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/externalcontact/get_strategy_tag_list 接口的响应。</para>
/// </summary>
public class CgibinExternalContactGetStrategyTagListResponse : WechatWorkResponse
{
public static class Types
{
public class TagGroup
{
public static class Types
{
public class Tag
{
/// <summary>
/// 获取或设置企业标签 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("id")]
[System.Text.Json.Serialization.JsonPropertyName("id")]
public string TagId { get; set; } = default!;
/// <summary>
/// 获取或设置企业标签名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = default!;
/// <summary>
/// 获取或设置次序值。
/// </summary>
[Newtonsoft.Json.JsonProperty("order")]
[System.Text.Json.Serialization.JsonPropertyName("order")]
public int Order { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置规则组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("strategy_id")]
[System.Text.Json.Serialization.JsonPropertyName("strategy_id")]
public int StrategyId { get; set; }
/// <summary>
/// 获取或设置企业标签分组 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public string TagGroupId { get; set; } = default!;
/// <summary>
/// 获取或设置企业标签分组名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("group_name")]
[System.Text.Json.Serialization.JsonPropertyName("group_name")]
public string TagGroupName { get; set; } = default!;
/// <summary>
/// 获取或设置次序值。
/// </summary>
[Newtonsoft.Json.JsonProperty("order")]
[System.Text.Json.Serialization.JsonPropertyName("order")]
public int Order { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
/// <summary>
/// 获取或设置标签列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("tag")]
[System.Text.Json.Serialization.JsonPropertyName("tag")]
public Types.Tag[] TagList { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置企业标签列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("tag_group")]
[System.Text.Json.Serialization.JsonPropertyName("tag_group")]
public Types.TagGroup[] TagGroupList { get; set; } = default!;
}
}