diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs index edbdaa61..5da03d74 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs @@ -53,6 +53,158 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + /// + /// 异步调用 [GET] /cgi-bin/externalcontact/list 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92113 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactListAsync(this WechatWorkClient client, Models.CgibinExternalContactListRequest 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(HttpMethod.Get, "cgi-bin", "externalcontact", "list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken) + .SetQueryParam("userid", request.UserId); + + return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /cgi-bin/externalcontact/get 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92113 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetAsync(this WechatWorkClient client, Models.CgibinExternalContactGetRequest 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(HttpMethod.Get, "cgi-bin", "externalcontact", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken) + .SetQueryParam("external_userid", request.ExternalUserId); + + if (!string.IsNullOrEmpty(request.NextCursor)) + request.NextCursor = request.NextCursor; + + return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/batch/get_by_user 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92115 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactBatchGetByUserAsync(this WechatWorkClient client, Models.CgibinExternalContactBatchGetByUserRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "batch", "get_by_user") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/remark 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92994 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactRemarkAsync(this WechatWorkClient client, Models.CgibinExternalContactRemarkRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "remark") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/mark_tag 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92118 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactMarkTagAsync(this WechatWorkClient client, Models.CgibinExternalContactMarkTagRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "mark_tag") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_unassigned_listr 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92124 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetUnassignedListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetUnassignedListRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_unassigned_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_user_behavior_data 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92132 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetUserBehaviorDataAsync(this WechatWorkClient client, Models.CgibinExternalContactGetUserBehaviorDataRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_user_behavior_data") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #region ContactWay /// /// 异步调用 [POST] /cgi-bin/externalcontact/add_contact_way 接口。 @@ -138,5 +290,586 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion + + #region CorpTag + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_corp_tag_list 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetCorpTagListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetCorpTagListRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_corp_tag_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/add_corp_tag 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactAddCorpTagAsync(this WechatWorkClient client, Models.CgibinExternalContactAddCorpTagRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "add_corp_tag") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/edit_corp_tag 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactEditCorpTagAsync(this WechatWorkClient client, Models.CgibinExternalContactEditCorpTagRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "edit_corp_tag") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/del_corp_tag 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactDeleteCorpTagAsync(this WechatWorkClient client, Models.CgibinExternalContactDeleteCorpTagRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "del_corp_tag") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region Transfer + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/transfer_customer 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92125 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactTransferCustomerAsync(this WechatWorkClient client, Models.CgibinExternalContactTransferCustomerRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "transfer_customer") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/transfer_result 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94088 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactTransferResultAsync(this WechatWorkClient client, Models.CgibinExternalContactTransferResultRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "transfer_result") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/resigned/transfer_customer 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94081 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactResignedTransferCustomerAsync(this WechatWorkClient client, Models.CgibinExternalContactResignedTransferCustomerRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "resigned", "transfer_customer") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/transfer_result 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94082 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactResignedTransferResultAsync(this WechatWorkClient client, Models.CgibinExternalContactResignedTransferResultRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "resigned", "transfer_result") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region GroupChat + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/transfer 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92127 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupChatTransferAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatTransferRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "groupchat", "transfer") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/list 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92120 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupChatListAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatListRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "groupchat", "list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/get 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92122 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupChatGetAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatGetRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "groupchat", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + #region GroupChatStatistic + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/statistic 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92133 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupChatStatisticAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatStatisticRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "groupchat", "statistic") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/statistic_group_by_day 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92133 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupChatStatisticGroupByDayAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatStatisticGroupByDayRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "groupchat", "statistic_group_by_day") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + #endregion + + #region Moment + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_list 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetMomentListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentListRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_moment_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_task 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetMomentTaskAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentTaskRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_moment_task") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_customer_list 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetMomentCustomerListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentCustomerListRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_moment_customer_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_send_result 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetMomentSendResultAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentSendResultRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_moment_send_result") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_comments 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetMomentCommentsAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentCommentsRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_moment_comments") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region GroupMessage + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/add_msg_template 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92135 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactAddMessageTemplateAsync(this WechatWorkClient client, Models.CgibinExternalContactAddMessageTemplateRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "add_msg_template") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_list_v2 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetGroupMessageListV2Async(this WechatWorkClient client, Models.CgibinExternalContactGetGroupMessageListV2Request 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_groupmsg_list_v2") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_task 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetGroupMessageTaskAsync(this WechatWorkClient client, Models.CgibinExternalContactGetGroupMessageTaskRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_groupmsg_task") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_send_result 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGetGroupMessageSendResultAsync(this WechatWorkClient client, Models.CgibinExternalContactGetGroupMessageSendResultRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "get_groupmsg_send_result") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region GroupWelcome + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/send_welcome_msg 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92137 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactSendWelcomeMessageAsync(this WechatWorkClient client, Models.CgibinExternalContactSendWelcomeMessageRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "send_welcome_msg") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/add 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupWelcomeTemplateAddAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupWelcomeTemplateAddRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "group_welcome_template", "add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/edit 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupWelcomeTemplateEditAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupWelcomeTemplateEditRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "group_welcome_template", "edit") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/get 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupWelcomeTemplateGetAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupWelcomeTemplateGetRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "group_welcome_template", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/del 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinExternalContactGroupWelcomeTemplateDeleteAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupWelcomeTemplateDeleteRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "group_welcome_template", "del") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserRequest.cs new file mode 100644 index 00000000..6cd2b803 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/batch/get_by_user 接口的请求。 + /// + public class CgibinExternalContactBatchGetByUserRequest : WechatWorkRequest + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserResponse.cs new file mode 100644 index 00000000..7278f3ad --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserResponse.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/batch/get_by_user 接口的响应。 + /// + public class CgibinExternalContactBatchGetByUserResponse : WechatWorkResponse + { + public static class Types + { + public class ExternalContactUser + { + public static class Types + { + public class ExternalContact : CgibinExternalContactGetResponse.Types.ExternalContact + { + } + + public class FollowUser + { + /// + /// 获取或设置该成员对外部联系人的备注。 + /// + [Newtonsoft.Json.JsonProperty("remark")] + [System.Text.Json.Serialization.JsonPropertyName("remark")] + public string Remark { get; set; } = default!; + + /// + /// 获取或设置该成员对外部联系人的备注企业名称。 + /// + [Newtonsoft.Json.JsonProperty("remark_corp_name")] + [System.Text.Json.Serialization.JsonPropertyName("remark_corp_name")] + public string? RemarkCompany { get; set; } + + /// + /// 获取或设置该成员对外部联系人的备注手机号码列表。 + /// + [Newtonsoft.Json.JsonProperty("remark_mobiles")] + [System.Text.Json.Serialization.JsonPropertyName("remark_mobiles")] + public string[]? RemarkMobileNumberList { get; set; } + + /// + /// 获取或设置该成员对外部联系人的描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置该成员添加外部联系人所打企业标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_id")] + [System.Text.Json.Serialization.JsonPropertyName("tag_id")] + public string[] TagIdList { get; set; } = default!; + + /// + /// 获取或设置该成员添加外部联系人的来源。 + /// + [Newtonsoft.Json.JsonProperty("add_way")] + [System.Text.Json.Serialization.JsonPropertyName("add_way")] + public int AddWay { get; set; } + + /// + /// 获取或设置该成员添加外部联系人的时间戳。 + /// + [Newtonsoft.Json.JsonProperty("createtime")] + [System.Text.Json.Serialization.JsonPropertyName("createtime")] + public long CreateTimestamp { get; set; } + + /// + /// 获取或设置企业自定义渠道参数。 + /// + [Newtonsoft.Json.JsonProperty("state")] + [System.Text.Json.Serialization.JsonPropertyName("state")] + public string? State { get; set; } + + /// + /// 获取或设置发起添加的用户账号。 + /// + [Newtonsoft.Json.JsonProperty("oper_userid")] + [System.Text.Json.Serialization.JsonPropertyName("oper_userid")] + public string? OperateUserId { get; set; } + } + } + + /// + /// 获取或设置外部联系人信息。 + /// + [Newtonsoft.Json.JsonProperty("external_contact")] + [System.Text.Json.Serialization.JsonPropertyName("external_contact")] + public Types.ExternalContact ExternalContact { get; set; } = default!; + + /// + /// 获取或设置添加了此外部联系人的企业成员信息。 + /// + [Newtonsoft.Json.JsonProperty("follow_info")] + [System.Text.Json.Serialization.JsonPropertyName("follow_info")] + public Types.FollowUser FollowUser { get; set; } = default!; + } + } + + /// + /// 获取或设置外部联系人列表。 + /// + [Newtonsoft.Json.JsonProperty("external_contact_list")] + [System.Text.Json.Serialization.JsonPropertyName("external_contact_list")] + public Types.ExternalContactUser[] ExternalContactList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetRequest.cs new file mode 100644 index 00000000..066c0a28 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/externalcontact/get 接口的请求。 + /// + public class CgibinExternalContactGetRequest : WechatWorkRequest + { + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ExternalUserId { get; set; } = string.Empty; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetResponse.cs new file mode 100644 index 00000000..5e993989 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetResponse.cs @@ -0,0 +1,222 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/externalcontact/get 接口的响应。 + /// + public class CgibinExternalContactGetResponse : WechatWorkResponse + { + public static class Types + { + public class ExternalContact + { + public static class Types + { + public class ExternalProfile : CgibinUserGetResponse.Types.ExternalProfile + { + } + } + + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = default!; + + /// + /// 获取或设置外部联系人名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置外部联系人 UnionId。 + /// + [Newtonsoft.Json.JsonProperty("unionid")] + [System.Text.Json.Serialization.JsonPropertyName("unionid")] + public string? UnionId { get; set; } + + /// + /// 获取或设置头像 URL。 + /// + [Newtonsoft.Json.JsonProperty("avatar")] + [System.Text.Json.Serialization.JsonPropertyName("avatar")] + public string? AvatarUrl { get; set; } + + /// + /// 获取或设置联系人类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置性别。 + /// + [Newtonsoft.Json.JsonProperty("gender")] + [System.Text.Json.Serialization.JsonPropertyName("gender")] + public int Gender { get; set; } + + /// + /// 获取或设置职位。 + /// + [Newtonsoft.Json.JsonProperty("position")] + [System.Text.Json.Serialization.JsonPropertyName("position")] + public string? Position { get; set; } + + /// + /// 获取或设置所在企业简称。 + /// + [Newtonsoft.Json.JsonProperty("corp_name")] + [System.Text.Json.Serialization.JsonPropertyName("corp_name")] + public string? CorpName { get; set; } + + /// + /// 获取或设置所在企业全称。 + /// + [Newtonsoft.Json.JsonProperty("corp_full_name")] + [System.Text.Json.Serialization.JsonPropertyName("corp_full_name")] + public string? CorpFullName { get; set; } + + /// + /// 获取或设置对外属性信息。 + /// + [Newtonsoft.Json.JsonProperty("external_profile")] + [System.Text.Json.Serialization.JsonPropertyName("external_profile")] + public Types.ExternalProfile? ExternalProfile { get; set; } + } + + public class FollowUser + { + public static class Types + { + public class Tag + { + /// + /// 获取或设置该成员添加外部联系人所打标签类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置该成员添加外部联系人所打企业标签 ID。 + /// + [Newtonsoft.Json.JsonProperty("tag_id")] + [System.Text.Json.Serialization.JsonPropertyName("tag_id")] + public string? TagId { get; set; } + + /// + /// 获取或设置该成员添加外部联系人所打企业标签名称。 + /// + [Newtonsoft.Json.JsonProperty("tag_name")] + [System.Text.Json.Serialization.JsonPropertyName("tag_name")] + public string? TagName { get; set; } + + /// + /// 获取或设置该成员添加外部联系人所打企业标签分组名称。 + /// + [Newtonsoft.Json.JsonProperty("group_name")] + [System.Text.Json.Serialization.JsonPropertyName("group_name")] + public string? GroupName { get; set; } + } + } + + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置该成员对外部联系人的备注。 + /// + [Newtonsoft.Json.JsonProperty("remark")] + [System.Text.Json.Serialization.JsonPropertyName("remark")] + public string Remark { get; set; } = default!; + + /// + /// 获取或设置该成员对外部联系人的备注企业名称。 + /// + [Newtonsoft.Json.JsonProperty("remark_corp_name")] + [System.Text.Json.Serialization.JsonPropertyName("remark_corp_name")] + public string? RemarkCorpName { get; set; } + + /// + /// 获取或设置该成员对外部联系人的备注手机号码列表。 + /// + [Newtonsoft.Json.JsonProperty("remark_mobiles")] + [System.Text.Json.Serialization.JsonPropertyName("remark_mobiles")] + public string[]? RemarkMobileNumberList { get; set; } + + /// + /// 获取或设置该成员对外部联系人的描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置该成员添加外部联系人所打企业标签列表。 + /// + [Newtonsoft.Json.JsonProperty("tags")] + [System.Text.Json.Serialization.JsonPropertyName("tags")] + public Types.Tag[]? Tags { get; set; } + + /// + /// 获取或设置该成员添加外部联系人的来源。 + /// + [Newtonsoft.Json.JsonProperty("add_way")] + [System.Text.Json.Serialization.JsonPropertyName("add_way")] + public int AddWay { get; set; } + + /// + /// 获取或设置该成员添加外部联系人的时间戳。 + /// + [Newtonsoft.Json.JsonProperty("createtime")] + [System.Text.Json.Serialization.JsonPropertyName("createtime")] + public long CreateTimestamp { get; set; } + + /// + /// 获取或设置企业自定义渠道参数。 + /// + [Newtonsoft.Json.JsonProperty("state")] + [System.Text.Json.Serialization.JsonPropertyName("state")] + public string? State { get; set; } + + /// + /// 获取或设置发起添加的用户账号。 + /// + [Newtonsoft.Json.JsonProperty("oper_userid")] + [System.Text.Json.Serialization.JsonPropertyName("oper_userid")] + public string? OperateUserId { get; set; } + } + } + + /// + /// 获取或设置外部联系人信息。 + /// + [Newtonsoft.Json.JsonProperty("external_contact")] + [System.Text.Json.Serialization.JsonPropertyName("external_contact")] + public Types.ExternalContact ExternalContact { get; set; } = default!; + + /// + /// 获取或设置添加了此外部联系人的企业成员列表。 + /// + [Newtonsoft.Json.JsonProperty("follow_user")] + [System.Text.Json.Serialization.JsonPropertyName("follow_user")] + public Types.FollowUser[] FollowUserList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListRequest.cs new file mode 100644 index 00000000..e889f445 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_unassigned_list 接口的请求。 + /// + public class CgibinExternalContactGetUnassignedListRequest : WechatWorkRequest + { + /// + /// 获取或设置分页页数(从 0 开始)。 + /// + [Newtonsoft.Json.JsonProperty("page_id")] + [System.Text.Json.Serialization.JsonPropertyName("page_id")] + public int? Page { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int? Limit { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListResponse.cs new file mode 100644 index 00000000..aeb77ffd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListResponse.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_unassigned_list 接口的响应。 + /// + public class CgibinExternalContactGetUnassignedListResponse : WechatWorkResponse + { + public static class Types + { + public class DismissedUser + { + /// + /// 获取或设置离职成员账号。 + /// + [Newtonsoft.Json.JsonProperty("handover_userid")] + [System.Text.Json.Serialization.JsonPropertyName("handover_userid")] + public string HandoverUserId { get; set; } = default!; + + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = default!; + + /// + /// 获取或设置离职时间戳。 + /// + [Newtonsoft.Json.JsonProperty("dimission_time")] + [System.Text.Json.Serialization.JsonPropertyName("dimission_time")] + public long DismissionTimestamp { get; set; } + } + } + + /// + /// 获取或设置离职成员列表。 + /// + [Newtonsoft.Json.JsonProperty("info")] + [System.Text.Json.Serialization.JsonPropertyName("info")] + public Types.DismissedUser[] DismissedUserList { get; set; } = default!; + + /// + /// 获取或设置是否是最后一条记录。 + /// + [Newtonsoft.Json.JsonProperty("is_last")] + [System.Text.Json.Serialization.JsonPropertyName("is_last")] + public bool IsLast { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataRequest.cs new file mode 100644 index 00000000..5e039e6f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_user_behavior_data 接口的请求。 + /// + public class CgibinExternalContactGetUserBehaviorDataRequest : WechatWorkRequest + { + /// + /// 获取或设置数据起始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置数据结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置指定成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public IList? UserIdList { get; set; } + + /// + /// 获取或设置指定部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("partyid")] + [System.Text.Json.Serialization.JsonPropertyName("partyid")] + public IList? DepartmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataResponse.cs new file mode 100644 index 00000000..25f46aa3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataResponse.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_user_behavior_data 接口的响应。 + /// + public class CgibinExternalContactGetUserBehaviorDataResponse : WechatWorkResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置数据统计时间戳。 + /// + [Newtonsoft.Json.JsonProperty("stat_time")] + [System.Text.Json.Serialization.JsonPropertyName("stat_time")] + public long StatTimestamp { get; set; } + + /// + /// 获取或设置聊天数。 + /// + [Newtonsoft.Json.JsonProperty("chat_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("chat_cnt")] + public int ChatCount { get; set; } + + /// + /// 获取或设置发送消息数。 + /// + [Newtonsoft.Json.JsonProperty("message_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("message_cnt")] + public int MessageCount { get; set; } + + /// + /// 获取或设置已回复聊天占比。 + /// + [Newtonsoft.Json.JsonProperty("reply_percentage")] + [System.Text.Json.Serialization.JsonPropertyName("reply_percentage")] + public double? ReplyPercentage { get; set; } + + /// + /// 获取或设置平均首次回复时长(单位:分钟)。 + /// + [Newtonsoft.Json.JsonProperty("avg_reply_time")] + [System.Text.Json.Serialization.JsonPropertyName("avg_reply_time")] + public int? ReplyAverageTime { get; set; } + + /// + /// 获取或设置删除或拉黑成员的客户数。 + /// + [Newtonsoft.Json.JsonProperty("negative_feedback_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("negative_feedback_cnt")] + public int NegativeFeedbackCount { get; set; } + + /// + /// 获取或设置新发起申请数。 + /// + [Newtonsoft.Json.JsonProperty("new_apply_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("new_apply_cnt")] + public int NewApplyCount { get; set; } + + /// + /// 获取或设置新增客户数。 + /// + [Newtonsoft.Json.JsonProperty("new_contact_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("new_contact_cnt")] + public int NewContactCount { get; set; } + } + } + + /// + /// 获取或设置数据列表。 + /// + [Newtonsoft.Json.JsonProperty("behavior_data")] + [System.Text.Json.Serialization.JsonPropertyName("behavior_data")] + public Types.Data[] DataList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactListRequest.cs new file mode 100644 index 00000000..f869e7db --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactListRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/externalcontact/list 接口的请求。 + /// + public class CgibinExternalContactListRequest : WechatWorkRequest + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string UserId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactListResponse.cs new file mode 100644 index 00000000..d6d00a19 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactListResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/externalcontact/list 接口的响应。 + /// + public class CgibinExternalContactListResponse : WechatWorkResponse + { + /// + /// 获取或设置外部联系人账号列表。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string[] ExternalUserIdList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactMarkTagRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactMarkTagRequest.cs new file mode 100644 index 00000000..ba5d5f63 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactMarkTagRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/mark_tag 接口的请求。 + /// + public class CgibinExternalContactMarkTagRequest : WechatWorkRequest + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = string.Empty; + + /// + /// 获取或设置要添加的企业标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("add_tag")] + [System.Text.Json.Serialization.JsonPropertyName("add_tag")] + public IList? AddTagIdList { get; set; } + + /// + /// 获取或设置要移除的企业标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("remove_tag")] + [System.Text.Json.Serialization.JsonPropertyName("remove_tag")] + public IList? RemoveTagIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactMarkTagResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactMarkTagResponse.cs new file mode 100644 index 00000000..becb1e00 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactMarkTagResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/mark_tag 接口的响应。 + /// + public class CgibinExternalContactMarkTagResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactRemarkRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactRemarkRequest.cs new file mode 100644 index 00000000..4e2e6a3b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactRemarkRequest.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/remark 接口的请求。 + /// + public class CgibinExternalContactRemarkRequest : WechatWorkRequest + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = string.Empty; + + /// + /// 获取或设置该成员对外部联系人的备注。 + /// + [Newtonsoft.Json.JsonProperty("remark")] + [System.Text.Json.Serialization.JsonPropertyName("remark")] + public string? Remark { get; set; } + + /// + /// 获取或设置该成员对外部联系人的备注企业名称。 + /// + [Newtonsoft.Json.JsonProperty("remark_company")] + [System.Text.Json.Serialization.JsonPropertyName("remark_company")] + public string? RemarkCompany { get; set; } + + /// + /// 获取或设置该成员对外部联系人的备注手机号码列表。 + /// + [Newtonsoft.Json.JsonProperty("remark_mobiles")] + [System.Text.Json.Serialization.JsonPropertyName("remark_mobiles")] + public IList? RemarkMobileNumberList { get; set; } + + /// + /// 获取或设置该成员对外部联系人的备注图片的 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("remark_pic_mediaid")] + [System.Text.Json.Serialization.JsonPropertyName("remark_pic_mediaid")] + public string? RemarkPictureUrl { get; set; } + + /// + /// 获取或设置该成员对外部联系人的描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactRemarkResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactRemarkResponse.cs new file mode 100644 index 00000000..061de8bb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactRemarkResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/remark 接口的响应。 + /// + public class CgibinExternalContactRemarkResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactAddCorpTagRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactAddCorpTagRequest.cs new file mode 100644 index 00000000..6f0a2d4a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactAddCorpTagRequest.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/add_corp_tag 接口的请求。 + /// + public class CgibinExternalContactAddCorpTagRequest : WechatWorkRequest + { + public static class Types + { + public class Tag + { + /// + /// 获取或设置企业标签名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置次序值。 + /// + [Newtonsoft.Json.JsonProperty("order")] + [System.Text.Json.Serialization.JsonPropertyName("order")] + public int? Order { get; set; } + } + } + + /// + /// 获取或设置企业标签分组 ID。 + /// + [Newtonsoft.Json.JsonProperty("group_id")] + [System.Text.Json.Serialization.JsonPropertyName("group_id")] + public string? GroupId { get; set; } + + /// + /// 获取或设置企业标签分组名称。 + /// + [Newtonsoft.Json.JsonProperty("group_name")] + [System.Text.Json.Serialization.JsonPropertyName("group_name")] + public string? Name { get; set; } + + /// + /// 获取或设置次序值。 + /// + [Newtonsoft.Json.JsonProperty("order")] + [System.Text.Json.Serialization.JsonPropertyName("order")] + public int? Order { get; set; } + + /// + /// 获取或设置企业标签列表。 + /// + [Newtonsoft.Json.JsonProperty("tag")] + [System.Text.Json.Serialization.JsonPropertyName("tag")] + public IList? TagList { get; set; } + + /// + /// 获取或设置授权方安装的应用 ID。 + /// + [Newtonsoft.Json.JsonProperty("agentid")] + [System.Text.Json.Serialization.JsonPropertyName("agentid")] + public int? AgentId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactAddCorpTagResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactAddCorpTagResponse.cs new file mode 100644 index 00000000..b12b59b1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactAddCorpTagResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/add_corp_tag 接口的响应。 + /// + public class CgibinExternalContactAddCorpTagResponse : WechatWorkResponse + { + public static class Types + { + public class TagGroup : CgibinExternalContactGetCorpTagListResponse.Types.TagGroup + { + } + } + + /// + /// 获取或设置企业标签分组信息。 + /// + [Newtonsoft.Json.JsonProperty("tag_group")] + [System.Text.Json.Serialization.JsonPropertyName("tag_group")] + public Types.TagGroup Group { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactDeleteCorpTagRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactDeleteCorpTagRequest.cs new file mode 100644 index 00000000..59d32f5b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactDeleteCorpTagRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/del_corp_tag 接口的请求。 + /// + public class CgibinExternalContactDeleteCorpTagRequest : CgibinExternalContactGetCorpTagListRequest + { + /// + /// 获取或设置授权方安装的应用 ID。 + /// + [Newtonsoft.Json.JsonProperty("agentid")] + [System.Text.Json.Serialization.JsonPropertyName("agentid")] + public int? AgentId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactDeleteCorpTagResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactDeleteCorpTagResponse.cs new file mode 100644 index 00000000..17c59402 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactDeleteCorpTagResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/del_corp_tag_list 接口的响应。 + /// + public class CgibinExternalContactDeleteCorpTagResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactEditCorpTagRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactEditCorpTagRequest.cs new file mode 100644 index 00000000..711e5e4d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactEditCorpTagRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/edit_corp_tag 接口的请求。 + /// + public class CgibinExternalContactEditCorpTagRequest : WechatWorkRequest + { + /// + /// 获取或设置企业标签或企业标签分组 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string? TagOrGroupId { get; set; } + + /// + /// 获取或设置企业标签或企业标签分组名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// 获取或设置次序值。 + /// + [Newtonsoft.Json.JsonProperty("order")] + [System.Text.Json.Serialization.JsonPropertyName("order")] + public int? Order { get; set; } + + /// + /// 获取或设置授权方安装的应用 ID。 + /// + [Newtonsoft.Json.JsonProperty("agentid")] + [System.Text.Json.Serialization.JsonPropertyName("agentid")] + public int? AgentId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactEditCorpTagResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactEditCorpTagResponse.cs new file mode 100644 index 00000000..e1421ad2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactEditCorpTagResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/edit_corp_tag 接口的响应。 + /// + public class CgibinExternalContactEditCorpTagResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactGetCorpTagListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactGetCorpTagListRequest.cs new file mode 100644 index 00000000..a550c16b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactGetCorpTagListRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_corp_tag_list 接口的请求。 + /// + public class CgibinExternalContactGetCorpTagListRequest : WechatWorkRequest + { + /// + /// 获取或设置企业标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_id")] + [System.Text.Json.Serialization.JsonPropertyName("tag_id")] + public IList? TagIdList { get; set; } + + /// + /// 获取或设置企业标签分组 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("group_id")] + [System.Text.Json.Serialization.JsonPropertyName("group_id")] + public IList? GroupIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactGetCorpTagListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactGetCorpTagListResponse.cs new file mode 100644 index 00000000..c5a46d4d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CorpTag/CgibinExternalContactGetCorpTagListResponse.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_corp_tag_list 接口的响应。 + /// + public class CgibinExternalContactGetCorpTagListResponse : WechatWorkResponse + { + public static class Types + { + public class TagGroup + { + public static class Types + { + public class Tag + { + /// + /// 获取或设置企业标签 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string TagId { get; set; } = default!; + + /// + /// 获取或设置企业标签名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置次序值。 + /// + [Newtonsoft.Json.JsonProperty("order")] + [System.Text.Json.Serialization.JsonPropertyName("order")] + public int Order { get; set; } + + /// + /// 获取或设置是否已经被删除。 + /// + [Newtonsoft.Json.JsonProperty("deleted")] + [System.Text.Json.Serialization.JsonPropertyName("deleted")] + public bool? IsDeleted { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置企业标签分组 ID。 + /// + [Newtonsoft.Json.JsonProperty("group_id")] + [System.Text.Json.Serialization.JsonPropertyName("group_id")] + public string GroupId { get; set; } = default!; + + /// + /// 获取或设置企业标签分组名称。 + /// + [Newtonsoft.Json.JsonProperty("group_name")] + [System.Text.Json.Serialization.JsonPropertyName("group_name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置次序值。 + /// + [Newtonsoft.Json.JsonProperty("order")] + [System.Text.Json.Serialization.JsonPropertyName("order")] + public int Order { get; set; } + + /// + /// 获取或设置企业标签列表。 + /// + [Newtonsoft.Json.JsonProperty("tag")] + [System.Text.Json.Serialization.JsonPropertyName("tag")] + public Types.Tag[] TagList { get; set; } = default!; + + /// + /// 获取或设置是否已经被删除。 + /// + [Newtonsoft.Json.JsonProperty("deleted")] + [System.Text.Json.Serialization.JsonPropertyName("deleted")] + public bool? IsDeleted { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置企业标签分组列表。 + /// + [Newtonsoft.Json.JsonProperty("tag_group")] + [System.Text.Json.Serialization.JsonPropertyName("tag_group")] + public Types.TagGroup[] GroupList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetRequest.cs new file mode 100644 index 00000000..a62a7135 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/get 接口的请求。 + /// + public class CgibinExternalContactGroupChatGetRequest : WechatWorkRequest + { + /// + /// 获取或设置客户群 ID。 + /// + [Newtonsoft.Json.JsonProperty("chat_id")] + [System.Text.Json.Serialization.JsonPropertyName("chat_id")] + public string ChatId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetResponse.cs new file mode 100644 index 00000000..c7dfba53 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetResponse.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/get 接口的响应。 + /// + public class CgibinExternalContactGroupChatGetResponse : WechatWorkResponse + { + public static class Types + { + public class GroupChat + { + public static class Types + { + public class Member + { + public static class Types + { + public class Invitor + { + /// + /// 获取或设置邀请者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + } + } + + /// + /// 获取或设置成员类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置成员账号或外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置外部联系人 UnionId。 + /// + [Newtonsoft.Json.JsonProperty("unionid")] + [System.Text.Json.Serialization.JsonPropertyName("unionid")] + public string? UnionId { get; set; } + + /// + /// 获取或设置邀请者信息。 + /// + [Newtonsoft.Json.JsonProperty("invitor")] + [System.Text.Json.Serialization.JsonPropertyName("invitor")] + public Types.Invitor? Invitor { get; set; } + + /// + /// 获取或设置入群场景。 + /// + [Newtonsoft.Json.JsonProperty("join_scene")] + [System.Text.Json.Serialization.JsonPropertyName("join_scene")] + public int JoinScene { get; set; } = default!; + + /// + /// 获取或设置入群时间戳。 + /// + [Newtonsoft.Json.JsonProperty("join_time")] + [System.Text.Json.Serialization.JsonPropertyName("join_time")] + public long JoinTimestamp { get; set; } + } + + public class Admin + { + /// + /// 获取或设置管理员成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + } + } + + /// + /// 获取或设置客户群 ID。 + /// + [Newtonsoft.Json.JsonProperty("chat_id")] + [System.Text.Json.Serialization.JsonPropertyName("chat_id")] + public string ChatId { get; set; } = default!; + + /// + /// 获取或设置客户群名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置群主成员账号。 + /// + [Newtonsoft.Json.JsonProperty("owner")] + [System.Text.Json.Serialization.JsonPropertyName("owner")] + public string OwnerUserId { get; set; } = default!; + + /// + /// 获取或设置群公告。 + /// + [Newtonsoft.Json.JsonProperty("notice")] + [System.Text.Json.Serialization.JsonPropertyName("notice")] + public string Notice { get; set; } = default!; + + /// + /// 获取或设置群成员列表。 + /// + [Newtonsoft.Json.JsonProperty("member_list")] + [System.Text.Json.Serialization.JsonPropertyName("member_list")] + public Types.Member[] MemberList { get; set; } = default!; + + /// + /// 获取或设置群管理员列表。 + /// + [Newtonsoft.Json.JsonProperty("admin_list")] + [System.Text.Json.Serialization.JsonPropertyName("admin_list")] + public Types.Admin[] AdminList { get; set; } = default!; + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置客户群信息。 + /// + [Newtonsoft.Json.JsonProperty("group_chat")] + [System.Text.Json.Serialization.JsonPropertyName("group_chat")] + public Types.GroupChat GroupChat { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListRequest.cs new file mode 100644 index 00000000..8c26b1c2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListRequest.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/list 接口的请求。 + /// + public class CgibinExternalContactGroupChatListRequest : WechatWorkRequest + { + public static class Types + { + public class OwnerFilter + { + /// + /// 获取或设置群主成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("userid_list")] + public IList? UserIdList { get; set; } + } + } + + /// + /// 获取或设置指定跟进状态。 + /// + [Newtonsoft.Json.JsonProperty("status_filter")] + [System.Text.Json.Serialization.JsonPropertyName("status_filter")] + public int? Status { get; set; } + + /// + /// 获取或设置指定群主信息。 + /// + [Newtonsoft.Json.JsonProperty("owner_filter")] + [System.Text.Json.Serialization.JsonPropertyName("owner_filter")] + public Types.OwnerFilter? Owner { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int Limit { get; set; } = 10; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListResponse.cs new file mode 100644 index 00000000..33fbf59d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListResponse.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/list 接口的响应。 + /// + public class CgibinExternalContactGroupChatListResponse : WechatWorkResponse + { + public static class Types + { + public class GroupChat + { + /// + /// 获取或设置客户群 ID。 + /// + [Newtonsoft.Json.JsonProperty("chat_id")] + [System.Text.Json.Serialization.JsonPropertyName("chat_id")] + public string ChatId { get; set; } = default!; + + /// + /// 获取或设置跟进状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + + /// + /// 获取或设置客户群列表。 + /// + [Newtonsoft.Json.JsonProperty("group_chat_list")] + [System.Text.Json.Serialization.JsonPropertyName("group_chat_list")] + public Types.GroupChat[] GroupChatList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferRequest.cs new file mode 100644 index 00000000..df61f067 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/transfer 接口的请求。 + /// + public class CgibinExternalContactGroupChatTransferRequest : WechatWorkRequest + { + /// + /// 获取或设置客户群 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("chat_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("chat_id_list")] + public IList ChatIdList { get; set; } = new List(); + + /// + /// 获取或设置新群主成员账号。 + /// + [Newtonsoft.Json.JsonProperty("new_owner")] + [System.Text.Json.Serialization.JsonPropertyName("new_owner")] + public string NewOwnerUserId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferResponse.cs new file mode 100644 index 00000000..61bf49cd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferResponse.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/transfer 接口的响应。 + /// + public class CgibinExternalContactGroupChatTransferResponse : WechatWorkResponse + { + public static class Types + { + public class GroupChat + { + /// + /// 获取或设置客户群 ID。 + /// + [Newtonsoft.Json.JsonProperty("chat_id")] + [System.Text.Json.Serialization.JsonPropertyName("chat_id")] + public string ChatId { get; set; } = default!; + + /// + /// 获取或设置错误码。 + /// + [Newtonsoft.Json.JsonProperty("errcode")] + [System.Text.Json.Serialization.JsonPropertyName("errcode")] + public int ErrorCode { get; set; } + + /// + /// 获取或设置错误描述。 + /// + [Newtonsoft.Json.JsonProperty("errmsg")] + [System.Text.Json.Serialization.JsonPropertyName("errmsg")] + public string ErrorMessage { get; set; } = default!; + } + } + + /// + /// 获取或设置转交失败的客户群列表。 + /// + [Newtonsoft.Json.JsonProperty("failed_chat_list")] + [System.Text.Json.Serialization.JsonPropertyName("failed_chat_list")] + public Types.GroupChat[]? FailedGroupChatList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayRequest.cs new file mode 100644 index 00000000..b5419016 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/statistic_group_by_day 接口的请求。 + /// + public class CgibinExternalContactGroupChatStatisticGroupByDayRequest : WechatWorkRequest + { + public static class Types + { + public class OwnerFilter : CgibinExternalContactGroupChatStatisticRequest.Types.OwnerFilter + { + } + } + + /// + /// 获取或设置起始日期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("day_begin_time")] + [System.Text.Json.Serialization.JsonPropertyName("day_begin_time")] + public long DayBeginTimestamp { get; set; } + + /// + /// 获取或设置结束日期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("day_end_time")] + [System.Text.Json.Serialization.JsonPropertyName("day_end_time")] + public long? DayEndTimestamp { get; set; } + + /// + /// 获取或设置指定成员信息。 + /// + [Newtonsoft.Json.JsonProperty("owner_filter")] + [System.Text.Json.Serialization.JsonPropertyName("owner_filter")] + public Types.OwnerFilter Owner { get; set; } = new Types.OwnerFilter(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayResponse.cs new file mode 100644 index 00000000..01bcd988 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayResponse.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/statistic_group_by_day 接口的响应。 + /// + public class CgibinExternalContactGroupChatStatisticGroupByDayResponse : WechatWorkResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Statistic : CgibinExternalContactGroupChatStatisticResponse.Types.Data.Types.Statistic + { + } + } + + /// + /// 获取或设置数据统计时间戳。 + /// + [Newtonsoft.Json.JsonProperty("stat_time")] + [System.Text.Json.Serialization.JsonPropertyName("stat_time")] + public long StatTimestamp { get; set; } + + /// + /// 获取或设置统计数据。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Statistic Statistic { get; set; } = default!; + } + } + + /// + /// 获取或设置数据列表。 + /// + [Newtonsoft.Json.JsonProperty("items")] + [System.Text.Json.Serialization.JsonPropertyName("items")] + public Types.Data[] DataList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticRequest.cs new file mode 100644 index 00000000..4f58b80e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticRequest.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/statistic 接口的请求。 + /// + public class CgibinExternalContactGroupChatStatisticRequest : WechatWorkRequest + { + public static class Types + { + public class OwnerFilter + { + /// + /// 获取或设置指定成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid_list")] + [System.Text.Json.Serialization.JsonPropertyName("userid_list")] + public IList? UserIdList { get; set; } + } + } + + /// + /// 获取或设置起始日期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("day_begin_time")] + [System.Text.Json.Serialization.JsonPropertyName("day_begin_time")] + public long DayBeginTimestamp { get; set; } + + /// + /// 获取或设置结束日期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("day_end_time")] + [System.Text.Json.Serialization.JsonPropertyName("day_end_time")] + public long? DayEndTimestamp { get; set; } + + /// + /// 获取或设置指定成员信息。 + /// + [Newtonsoft.Json.JsonProperty("owner_filter")] + [System.Text.Json.Serialization.JsonPropertyName("owner_filter")] + public Types.OwnerFilter Owner { get; set; } = new Types.OwnerFilter(); + + /// + /// 获取或设置排序方式。 + /// + [Newtonsoft.Json.JsonProperty("order_by")] + [System.Text.Json.Serialization.JsonPropertyName("order_by")] + public int? OrderBy { get; set; } + + /// + /// 获取或设置是否升序排序。 + /// + [Newtonsoft.Json.JsonProperty("order_asc")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("order_asc")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsAscending { get; set; } + + /// + /// 获取或设置分页起始位置。 + /// + [Newtonsoft.Json.JsonProperty("offset")] + [System.Text.Json.Serialization.JsonPropertyName("offset")] + public int? Offset { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticResponse.cs new file mode 100644 index 00000000..6509e653 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticResponse.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/groupchat/statistic 接口的响应。 + /// + public class CgibinExternalContactGroupChatStatisticResponse : WechatWorkResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Statistic + { + /// + /// 获取或设置新增客户群数量。 + /// + [Newtonsoft.Json.JsonProperty("new_chat_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("new_chat_cnt")] + public int NewChatCount { get; set; } + + /// + /// 获取或设置客户群总数量。 + /// + [Newtonsoft.Json.JsonProperty("chat_total")] + [System.Text.Json.Serialization.JsonPropertyName("chat_total")] + public int ChatTotalCount { get; set; } + + /// + /// 获取或设置有发过消息的客户群数量。 + /// + [Newtonsoft.Json.JsonProperty("chat_has_msg")] + [System.Text.Json.Serialization.JsonPropertyName("chat_has_msg")] + public int ChatHasMessageCount { get; set; } + + /// + /// 获取或设置客户群新增群人数。 + /// + [Newtonsoft.Json.JsonProperty("new_member_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("new_member_cnt")] + public int NewMemberCount { get; set; } + + /// + /// 获取或设置客户群总人数。 + /// + [Newtonsoft.Json.JsonProperty("member_total")] + [System.Text.Json.Serialization.JsonPropertyName("member_total")] + public int MemberTotalCount { get; set; } + + /// + /// 获取或设置有发过消息的群成员数。 + /// + [Newtonsoft.Json.JsonProperty("member_has_msg")] + [System.Text.Json.Serialization.JsonPropertyName("member_has_msg")] + public int MemberHasMessageCount { get; set; } + + /// + /// 获取或设置客户群消息总数。 + /// + [Newtonsoft.Json.JsonProperty("msg_total")] + [System.Text.Json.Serialization.JsonPropertyName("msg_total")] + public int MessageTotalCount { get; set; } + } + } + + /// + /// 获取或设置群主成员账号。 + /// + [Newtonsoft.Json.JsonProperty("owner")] + [System.Text.Json.Serialization.JsonPropertyName("owner")] + public string OwnerUserId { get; set; } = default!; + + /// + /// 获取或设置统计数据。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Statistic Statistic { get; set; } = default!; + } + } + + /// + /// 获取或设置数据列表。 + /// + [Newtonsoft.Json.JsonProperty("items")] + [System.Text.Json.Serialization.JsonPropertyName("items")] + public Types.Data[] DataList { get; set; } = default!; + + /// + /// 获取或设置数据总数量。 + /// + [Newtonsoft.Json.JsonProperty("total")] + [System.Text.Json.Serialization.JsonPropertyName("total")] + public int Total { get; set; } + + /// + /// 获取或设置下一页起始位置。 + /// + [Newtonsoft.Json.JsonProperty("next_offset")] + [System.Text.Json.Serialization.JsonPropertyName("next_offset")] + public int? NextOffset { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactAddMessageTemplateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactAddMessageTemplateRequest.cs new file mode 100644 index 00000000..5b5228cf --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactAddMessageTemplateRequest.cs @@ -0,0 +1,189 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/add_msg_template 接口的请求。 + /// + public class CgibinExternalContactAddMessageTemplateRequest : WechatWorkRequest + { + public static class Types + { + public class Text + { + /// + /// 获取或设置文本消息内容。 + /// + [Newtonsoft.Json.JsonProperty("content")] + [System.Text.Json.Serialization.JsonPropertyName("content")] + public string Content { get; set; } = string.Empty; + } + + public class Attachment + { + public static class Types + { + public class Image + { + /// + /// 获取或设置图片 MediaId。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string? MediaId { get; set; } + + /// + /// 获取或设置图片 URL。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("pic_url")] + [System.Text.Json.Serialization.JsonPropertyName("pic_url")] + public string? PictureUrl { get; set; } + } + + public class Link + { + /// + /// 获取或设置图文消息标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置图文消息描述。 + /// + [Newtonsoft.Json.JsonProperty("desc")] + [System.Text.Json.Serialization.JsonPropertyName("desc")] + public string? Description { get; set; } + + /// + /// 获取或设置图文消息 URL。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } = string.Empty; + + /// + /// 获取或设置图文消息封面 URL。 + /// + [Newtonsoft.Json.JsonProperty("picurl")] + [System.Text.Json.Serialization.JsonPropertyName("picurl")] + public string? PictureUrl { get; set; } + } + + public class Video + { + /// + /// 获取或设置视频 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string MediaId { get; set; } = string.Empty; + } + + public class MiniProgram + { + /// + /// 获取或设置小程序 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置小程序页面路径。 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public string PagePath { get; set; } = string.Empty; + + /// + /// 获取或设置小程序标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置小程序封面 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("pic_media_id")] + [System.Text.Json.Serialization.JsonPropertyName("pic_media_id")] + public string? PictureMediaId { get; set; } + } + } + + /// + /// 获取或设置附件类型。 + /// + [Newtonsoft.Json.JsonProperty("msgtype")] + [System.Text.Json.Serialization.JsonPropertyName("msgtype")] + public string Type { get; set; } = string.Empty; + + /// + /// 获取或设置图片附件信息。 + /// + [Newtonsoft.Json.JsonProperty("image")] + [System.Text.Json.Serialization.JsonPropertyName("image")] + public Types.Image? Image { get; set; } + + /// + /// 获取或设置图文消息附件信息。 + /// + [Newtonsoft.Json.JsonProperty("link")] + [System.Text.Json.Serialization.JsonPropertyName("link")] + public Types.Link? Link { get; set; } + + /// + /// 获取或设置视频附件信息。 + /// + [Newtonsoft.Json.JsonProperty("video")] + [System.Text.Json.Serialization.JsonPropertyName("video")] + public Types.Video? Video { get; set; } + + /// + /// 获取或设置小程序附件信息。 + /// + [Newtonsoft.Json.JsonProperty("miniprogram")] + [System.Text.Json.Serialization.JsonPropertyName("miniprogram")] + public Types.MiniProgram? MiniProgram { get; set; } + } + } + + /// + /// 获取或设置群发任务类型。 + /// + [Newtonsoft.Json.JsonProperty("chat_type")] + [System.Text.Json.Serialization.JsonPropertyName("chat_type")] + public string ChatType { get; set; } = string.Empty; + + /// + /// 获取或设置外部联系人账号列表。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public IList? ExternalUserIdList { get; set; } + + /// + /// 获取或设置发送者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("sender")] + [System.Text.Json.Serialization.JsonPropertyName("sender")] + public string? SenderUserId { get; set; } + + /// + /// 获取或设置文本消息信息。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public Types.Text? Text { get; set; } + + /// + /// 获取或设置附件列表。 + /// + [Newtonsoft.Json.JsonProperty("attachments")] + [System.Text.Json.Serialization.JsonPropertyName("attachments")] + public IList? AttachmentList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactAddMessageTemplateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactAddMessageTemplateResponse.cs new file mode 100644 index 00000000..3564f43e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactAddMessageTemplateResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/add_msg_template 接口的响应。 + /// + public class CgibinExternalContactAddMessageTemplateResponse : WechatWorkResponse + { + /// + /// 获取或设置群发消息 ID。 + /// + [Newtonsoft.Json.JsonProperty("msgid")] + [System.Text.Json.Serialization.JsonPropertyName("msgid")] + public string MessageId { get; set; } = default!; + + /// + /// 获取或设置发送失败的外部联系人账号列表。 + /// + [Newtonsoft.Json.JsonProperty("fail_list")] + [System.Text.Json.Serialization.JsonPropertyName("fail_list")] + public string[]? FailedExternalUserIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageListV2Request.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageListV2Request.cs new file mode 100644 index 00000000..b4c01670 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageListV2Request.cs @@ -0,0 +1,203 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_groupmsg_list_v2 接口的请求。 + /// + public class CgibinExternalContactGetGroupMessageListV2Request : WechatWorkRequest + { + public static class Types + { + public class Text + { + /// + /// 获取或设置文本消息内容。 + /// + [Newtonsoft.Json.JsonProperty("content")] + [System.Text.Json.Serialization.JsonPropertyName("content")] + public string Content { get; set; } = string.Empty; + } + + public class Attachment + { + public static class Types + { + public class Image + { + /// + /// 获取或设置图片 MediaId。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string? MediaId { get; set; } + + /// + /// 获取或设置图片 URL。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("pic_url")] + [System.Text.Json.Serialization.JsonPropertyName("pic_url")] + public string? PictureUrl { get; set; } + } + + public class Link + { + /// + /// 获取或设置图文消息标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置图文消息描述。 + /// + [Newtonsoft.Json.JsonProperty("desc")] + [System.Text.Json.Serialization.JsonPropertyName("desc")] + public string? Description { get; set; } + + /// + /// 获取或设置图文消息 URL。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } = string.Empty; + + /// + /// 获取或设置图文消息封面 URL。 + /// + [Newtonsoft.Json.JsonProperty("picurl")] + [System.Text.Json.Serialization.JsonPropertyName("picurl")] + public string? PictureUrl { get; set; } + } + + public class Video + { + /// + /// 获取或设置视频 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string MediaId { get; set; } = string.Empty; + } + + public class MiniProgram + { + /// + /// 获取或设置小程序 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置小程序页面路径。 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public string PagePath { get; set; } = string.Empty; + + /// + /// 获取或设置小程序标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置小程序封面 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("pic_media_id")] + [System.Text.Json.Serialization.JsonPropertyName("pic_media_id")] + public string? PictureMediaId { get; set; } + } + } + + /// + /// 获取或设置附件类型。 + /// + [Newtonsoft.Json.JsonProperty("msgtype")] + [System.Text.Json.Serialization.JsonPropertyName("msgtype")] + public string Type { get; set; } = string.Empty; + + /// + /// 获取或设置图片附件信息。 + /// + [Newtonsoft.Json.JsonProperty("image")] + [System.Text.Json.Serialization.JsonPropertyName("image")] + public Types.Image? Image { get; set; } + + /// + /// 获取或设置图文消息附件信息。 + /// + [Newtonsoft.Json.JsonProperty("link")] + [System.Text.Json.Serialization.JsonPropertyName("link")] + public Types.Link? Link { get; set; } + + /// + /// 获取或设置视频附件信息。 + /// + [Newtonsoft.Json.JsonProperty("video")] + [System.Text.Json.Serialization.JsonPropertyName("video")] + public Types.Video? Video { get; set; } + + /// + /// 获取或设置小程序附件信息。 + /// + [Newtonsoft.Json.JsonProperty("miniprogram")] + [System.Text.Json.Serialization.JsonPropertyName("miniprogram")] + public Types.MiniProgram? MiniProgram { get; set; } + } + } + + /// + /// 获取或设置指定群发任务类型。 + /// + [Newtonsoft.Json.JsonProperty("chat_type")] + [System.Text.Json.Serialization.JsonPropertyName("chat_type")] + public string ChatType { get; set; } = string.Empty; + + /// + /// 获取或设置指定开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置指定结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置指定创建者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("creator")] + [System.Text.Json.Serialization.JsonPropertyName("creator")] + public string? CreatorUserId { get; set; } + + /// + /// 获取或设置指定创建类型。 + /// + [Newtonsoft.Json.JsonProperty("filter_type")] + [System.Text.Json.Serialization.JsonPropertyName("filter_type")] + public int? CreateType { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageListV2Response.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageListV2Response.cs new file mode 100644 index 00000000..c5959b1e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageListV2Response.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_groupmsg_list_v2 接口的响应。 + /// + public class CgibinExternalContactGetGroupMessageListV2Response : WechatWorkResponse + { + public static class Types + { + public class GroupMessage + { + public static class Types + { + public class Text : CgibinExternalContactAddMessageTemplateRequest.Types.Text + { + } + + public class Attachment : CgibinExternalContactAddMessageTemplateRequest.Types.Attachment + { + } + } + + /// + /// 获取或设置群发消息 ID。 + /// + [Newtonsoft.Json.JsonProperty("msgid")] + [System.Text.Json.Serialization.JsonPropertyName("msgid")] + public string MessageId { get; set; } = default!; + + /// + /// 获取或设置创建者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("creator")] + [System.Text.Json.Serialization.JsonPropertyName("creator")] + public string CreatorUserId { get; set; } = default!; + + /// + /// 获取或设置创建类型。 + /// + [Newtonsoft.Json.JsonProperty("create_type")] + [System.Text.Json.Serialization.JsonPropertyName("create_type")] + public int CreateType { get; set; } + + /// + /// 获取或设置文本消息信息。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public Types.Text? Text { get; set; } + + /// + /// 获取或设置附件列表。 + /// + [Newtonsoft.Json.JsonProperty("attachments")] + [System.Text.Json.Serialization.JsonPropertyName("attachments")] + public Types.Attachment[]? AttachmentList { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置群发消息列表。 + /// + [Newtonsoft.Json.JsonProperty("group_msg_list")] + [System.Text.Json.Serialization.JsonPropertyName("group_msg_list")] + public Types.GroupMessage[]? GroupMessageList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultRequest.cs new file mode 100644 index 00000000..dbef9c5c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_groupmsg_send_result 接口的请求。 + /// + public class CgibinExternalContactGetGroupMessageSendResultRequest : CgibinExternalContactGetGroupMessageTaskRequest + { + /// + /// 获取或设置发送成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultResponse.cs new file mode 100644 index 00000000..745d7942 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultResponse.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_groupmsg_send_result 接口的响应。 + /// + public class CgibinExternalContactGetGroupMessageSendResultResponse : WechatWorkResponse + { + public static class Types + { + public class Result + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置客户群 ID。 + /// + [Newtonsoft.Json.JsonProperty("chat_id")] + [System.Text.Json.Serialization.JsonPropertyName("chat_id")] + public string? ChatId { get; set; } + + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string? ExternalUserId { get; set; } + + /// + /// 获取或设置发送状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置发送时间戳。 + /// + [Newtonsoft.Json.JsonProperty("send_time")] + [System.Text.Json.Serialization.JsonPropertyName("send_time")] + public long? SendTimestamp { get; set; } + } + } + + /// + /// 获取或设置群发发送结果列表。 + /// + [Newtonsoft.Json.JsonProperty("send_list")] + [System.Text.Json.Serialization.JsonPropertyName("send_list")] + public Types.Result[]? ResultList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageTaskRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageTaskRequest.cs new file mode 100644 index 00000000..74732133 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageTaskRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_groupmsg_task 接口的请求。 + /// + public class CgibinExternalContactGetGroupMessageTaskRequest : WechatWorkRequest + { + /// + /// 获取或设置群发消息 ID。 + /// + [Newtonsoft.Json.JsonProperty("msgid")] + [System.Text.Json.Serialization.JsonPropertyName("msgid")] + public string MessageId { get; set; } = string.Empty; + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageTaskResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageTaskResponse.cs new file mode 100644 index 00000000..9ca123bc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageTaskResponse.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_groupmsg_task 接口的响应。 + /// + public class CgibinExternalContactGetGroupMessageTaskResponse : WechatWorkResponse + { + public static class Types + { + public class Task + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置发送状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置发送时间戳。 + /// + [Newtonsoft.Json.JsonProperty("send_time")] + [System.Text.Json.Serialization.JsonPropertyName("send_time")] + public long? SendTimestamp { get; set; } + } + } + + /// + /// 获取或设置群发发送任务列表。 + /// + [Newtonsoft.Json.JsonProperty("task_list")] + [System.Text.Json.Serialization.JsonPropertyName("task_list")] + public Types.Task[]? TaskList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateAddRequest.cs new file mode 100644 index 00000000..aa533554 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateAddRequest.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/group_welcome_template/add 接口的请求。 + /// + public class CgibinExternalContactGroupWelcomeTemplateAddRequest : WechatWorkRequest + { + public static class Types + { + public class Text : CgibinExternalContactSendWelcomeMessageRequest.Types.Text + { + } + + public class Image : CgibinExternalContactSendWelcomeMessageRequest.Types.Attachment.Types.Image + { + } + + public class Link : CgibinExternalContactSendWelcomeMessageRequest.Types.Attachment.Types.Link + { + } + + public class Video : CgibinExternalContactSendWelcomeMessageRequest.Types.Attachment.Types.Video + { + } + + public class MiniProgram : CgibinExternalContactSendWelcomeMessageRequest.Types.Attachment.Types.MiniProgram + { + } + } + + /// + /// 获取或设置文本消息信息。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public Types.Text? Text { get; set; } + + /// + /// 获取或设置图片消息信息。 + /// + [Newtonsoft.Json.JsonProperty("image")] + [System.Text.Json.Serialization.JsonPropertyName("image")] + public Types.Image? Image { get; set; } + + /// + /// 获取或设置图文消息信息。 + /// + [Newtonsoft.Json.JsonProperty("link")] + [System.Text.Json.Serialization.JsonPropertyName("link")] + public Types.Link? Link { get; set; } + + /// + /// 获取或设置视频消息信息。 + /// + [Newtonsoft.Json.JsonProperty("video")] + [System.Text.Json.Serialization.JsonPropertyName("video")] + public Types.Video? Video { get; set; } + + /// + /// 获取或设置小程序消息信息。 + /// + [Newtonsoft.Json.JsonProperty("miniprogram")] + [System.Text.Json.Serialization.JsonPropertyName("miniprogram")] + public Types.MiniProgram? MiniProgram { get; set; } + + /// + /// 获取或设置是否通知成员将这条入群欢迎语应用到客户群中。 + /// + [Newtonsoft.Json.JsonProperty("notify")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("notify")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? RequireNotify { get; set; } + + /// + /// 获取或设置授权方安装的应用 ID。 + /// + [Newtonsoft.Json.JsonProperty("agentid")] + [System.Text.Json.Serialization.JsonPropertyName("agentid")] + public int? AgentId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateAddResponse.cs new file mode 100644 index 00000000..4f40fbfc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateAddResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/group_welcome_template/add 接口的响应。 + /// + public class CgibinExternalContactGroupWelcomeTemplateAddResponse : WechatWorkResponse + { + /// + /// 获取或设置欢迎语素材 ID。 + /// + [Newtonsoft.Json.JsonProperty("template_id")] + [System.Text.Json.Serialization.JsonPropertyName("template_id")] + public string TemplateId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateDeleteRequest.cs new file mode 100644 index 00000000..d015651e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateDeleteRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/group_welcome_template/del 接口的请求。 + /// + public class CgibinExternalContactGroupWelcomeTemplateDeleteRequest : WechatWorkRequest + { + /// + /// 获取或设置欢迎语素材 ID。 + /// + [Newtonsoft.Json.JsonProperty("template_id")] + [System.Text.Json.Serialization.JsonPropertyName("template_id")] + public string? TemplateId { get; set; } = string.Empty; + + /// + /// 获取或设置授权方安装的应用 ID。 + /// + [Newtonsoft.Json.JsonProperty("agentid")] + [System.Text.Json.Serialization.JsonPropertyName("agentid")] + public int? AgentId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateDeleteResponse.cs new file mode 100644 index 00000000..af9243a8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateDeleteResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/group_welcome_template/del 接口的响应。 + /// + public class CgibinExternalContactGroupWelcomeTemplateDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateEditRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateEditRequest.cs new file mode 100644 index 00000000..e4cbefff --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateEditRequest.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/group_welcome_template/edit 接口的请求。 + /// + public class CgibinExternalContactGroupWelcomeTemplateEditRequest : WechatWorkRequest + { + public static class Types + { + public class Text : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.Text + { + } + + public class Image : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.Image + { + } + + public class Link : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.Link + { + } + + public class Video : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.Video + { + } + + public class MiniProgram : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.MiniProgram + { + } + } + + /// + /// 获取或设置欢迎语素材 ID。 + /// + [Newtonsoft.Json.JsonProperty("template_id")] + [System.Text.Json.Serialization.JsonPropertyName("template_id")] + public string TemplateId { get; set; } = string.Empty; + + /// + /// 获取或设置文本消息信息。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public Types.Text? Text { get; set; } + + /// + /// 获取或设置图片消息信息。 + /// + [Newtonsoft.Json.JsonProperty("image")] + [System.Text.Json.Serialization.JsonPropertyName("image")] + public Types.Image? Image { get; set; } + + /// + /// 获取或设置图文消息信息。 + /// + [Newtonsoft.Json.JsonProperty("link")] + [System.Text.Json.Serialization.JsonPropertyName("link")] + public Types.Link? Link { get; set; } + + /// + /// 获取或设置视频消息信息。 + /// + [Newtonsoft.Json.JsonProperty("video")] + [System.Text.Json.Serialization.JsonPropertyName("video")] + public Types.Video? Video { get; set; } + + /// + /// 获取或设置小程序消息信息。 + /// + [Newtonsoft.Json.JsonProperty("miniprogram")] + [System.Text.Json.Serialization.JsonPropertyName("miniprogram")] + public Types.MiniProgram? MiniProgram { get; set; } + + /// + /// 获取或设置授权方安装的应用 ID。 + /// + [Newtonsoft.Json.JsonProperty("agentid")] + [System.Text.Json.Serialization.JsonPropertyName("agentid")] + public int? AgentId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateEditResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateEditResponse.cs new file mode 100644 index 00000000..258bd91c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateEditResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/group_welcome_template/edit 接口的响应。 + /// + public class CgibinExternalContactGroupWelcomeTemplateEditResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateGetRequest.cs new file mode 100644 index 00000000..33c4f4c3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateGetRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/group_welcome_template/get 接口的请求。 + /// + public class CgibinExternalContactGroupWelcomeTemplateGetRequest : WechatWorkRequest + { + /// + /// 获取或设置欢迎语素材 ID。 + /// + [Newtonsoft.Json.JsonProperty("template_id")] + [System.Text.Json.Serialization.JsonPropertyName("template_id")] + public string TemplateId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateGetResponse.cs new file mode 100644 index 00000000..95cd56d0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactGroupWelcomeTemplateGetResponse.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/group_welcome_template/get 接口的响应。 + /// + public class CgibinExternalContactGroupWelcomeTemplateGetResponse : WechatWorkResponse + { + public static class Types + { + public class Text : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.Text + { + } + + public class Image : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.Image + { + } + + public class Link : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.Link + { + } + + public class Video : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.Video + { + } + + public class MiniProgram : CgibinExternalContactGroupWelcomeTemplateAddRequest.Types.MiniProgram + { + } + } + + /// + /// 获取或设置文本消息信息。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public Types.Text? Text { get; set; } + + /// + /// 获取或设置图片消息信息。 + /// + [Newtonsoft.Json.JsonProperty("image")] + [System.Text.Json.Serialization.JsonPropertyName("image")] + public Types.Image? Image { get; set; } + + /// + /// 获取或设置图文消息信息。 + /// + [Newtonsoft.Json.JsonProperty("link")] + [System.Text.Json.Serialization.JsonPropertyName("link")] + public Types.Link? Link { get; set; } + + /// + /// 获取或设置视频消息信息。 + /// + [Newtonsoft.Json.JsonProperty("video")] + [System.Text.Json.Serialization.JsonPropertyName("video")] + public Types.Video? Video { get; set; } + + /// + /// 获取或设置小程序消息信息。 + /// + [Newtonsoft.Json.JsonProperty("miniprogram")] + [System.Text.Json.Serialization.JsonPropertyName("miniprogram")] + public Types.MiniProgram? MiniProgram { get; set; } + + /// + /// 获取或设置授权方安装的应用 ID。 + /// + [Newtonsoft.Json.JsonProperty("agentid")] + [System.Text.Json.Serialization.JsonPropertyName("agentid")] + public int? AgentId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactSendWelcomeMessageRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactSendWelcomeMessageRequest.cs new file mode 100644 index 00000000..83f90513 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactSendWelcomeMessageRequest.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/send_welcome_msg 接口的请求。 + /// + public class CgibinExternalContactSendWelcomeMessageRequest : WechatWorkRequest + { + public static class Types + { + public class Text : CgibinExternalContactAddMessageTemplateRequest.Types.Text + { + } + + public class Attachment : CgibinExternalContactAddMessageTemplateRequest.Types.Attachment + { + } + } + + /// + /// 获取或设置发送欢迎语的凭证。 + /// + [Newtonsoft.Json.JsonProperty("welcome_code")] + [System.Text.Json.Serialization.JsonPropertyName("welcome_code")] + public string WelcomeCode { get; set; } = string.Empty; + + /// + /// 获取或设置文本消息信息。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public Types.Text? Text { get; set; } + + /// + /// 获取或设置附件列表。 + /// + [Newtonsoft.Json.JsonProperty("attachments")] + [System.Text.Json.Serialization.JsonPropertyName("attachments")] + public IList? AttachmentList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactSendWelcomeMessageResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactSendWelcomeMessageResponse.cs new file mode 100644 index 00000000..12d0eb47 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupWelcome/CgibinExternalContactSendWelcomeMessageResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/send_welcome_msg 接口的响应。 + /// + public class CgibinExternalContactSendWelcomeMessageResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCommentsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCommentsRequest.cs new file mode 100644 index 00000000..2c9fe68c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCommentsRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_comments 接口的请求。 + /// + public class CgibinExternalContactGetMomentCommentsRequest : WechatWorkRequest + { + /// + /// 获取或设置朋友圈 ID。 + /// + [Newtonsoft.Json.JsonProperty("moment_id")] + [System.Text.Json.Serialization.JsonPropertyName("moment_id")] + public string MomentId { get; set; } = string.Empty; + + /// + /// 获取或设置发布者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCommentsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCommentsResponse.cs new file mode 100644 index 00000000..cb39eb42 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCommentsResponse.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_comments 接口的响应。 + /// + public class CgibinExternalContactGetMomentCommentsResponse : WechatWorkResponse + { + public static class Types + { + public class Interaction + { + /// + /// 获取或设置互动的外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string? UserId { get; set; } + + /// + /// 获取或设置互动的外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string? ExternalUserId { get; set; } = default!; + + /// + /// 获取或设置互动时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置评论列表。 + /// + [Newtonsoft.Json.JsonProperty("comment_list")] + [System.Text.Json.Serialization.JsonPropertyName("comment_list")] + public Types.Interaction[] CommentList { get; set; } = default!; + + /// + /// 获取或设置点赞列表。 + /// + [Newtonsoft.Json.JsonProperty("like_list")] + [System.Text.Json.Serialization.JsonPropertyName("like_list")] + public Types.Interaction[] LikeList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCustomerListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCustomerListRequest.cs new file mode 100644 index 00000000..f6674928 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCustomerListRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_customer_list 接口的请求。 + /// + public class CgibinExternalContactGetMomentCustomerListRequest : WechatWorkRequest + { + /// + /// 获取或设置朋友圈 ID。 + /// + [Newtonsoft.Json.JsonProperty("moment_id")] + [System.Text.Json.Serialization.JsonPropertyName("moment_id")] + public string MomentId { get; set; } = string.Empty; + + /// + /// 获取或设置指定发布者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string? UserId { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCustomerListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCustomerListResponse.cs new file mode 100644 index 00000000..7db8e14e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentCustomerListResponse.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_customer_list 接口的响应。 + /// + public class CgibinExternalContactGetMomentCustomerListResponse : WechatWorkResponse + { + public static class Types + { + public class Customer + { + /// + /// 获取或设置发布者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置可见的外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = default!; + } + } + + /// + /// 获取或设置可见的客户列表。 + /// + [Newtonsoft.Json.JsonProperty("customer_list")] + [System.Text.Json.Serialization.JsonPropertyName("customer_list")] + public Types.Customer[] CustomerList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentListRequest.cs new file mode 100644 index 00000000..e2ad1caf --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentListRequest.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_list 接口的请求。 + /// + public class CgibinExternalContactGetMomentListRequest : WechatWorkRequest + { + /// + /// 获取或设置指定开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置指定结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置指定创建者的成员账号或外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("creator")] + [System.Text.Json.Serialization.JsonPropertyName("creator")] + public string? CreatorUserId { get; set; } + + /// + /// 获取或设置指定类型。 + /// + [Newtonsoft.Json.JsonProperty("filter_type")] + [System.Text.Json.Serialization.JsonPropertyName("filter_type")] + public int? Type { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentListResponse.cs new file mode 100644 index 00000000..45e24339 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentListResponse.cs @@ -0,0 +1,182 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_list 接口的响应。 + /// + public class CgibinExternalContactGetMomentListResponse : WechatWorkResponse + { + public static class Types + { + public class Moment + { + public static class Types + { + public class Text + { + /// + /// 获取或设置文本内容。 + /// + [Newtonsoft.Json.JsonProperty("content")] + [System.Text.Json.Serialization.JsonPropertyName("content")] + public string Content { get; set; } = default!; + } + + public class Image + { + /// + /// 获取或设置图片 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string MediaId { get; set; } = default!; + } + + public class Video + { + /// + /// 获取或设置视频 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string MediaId { get; set; } = default!; + + /// + /// 获取或设置视频封面 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("thumb_media_id")] + [System.Text.Json.Serialization.JsonPropertyName("thumb_media_id")] + public string? ThumbnailMediaId { get; set; } + } + + public class Link + { + /// + /// 获取或设置网页 URL。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } = default!; + + /// + /// 获取或设置网页标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string? Title { get; set; } + } + + public class Location + { + /// + /// 获取或设置地理位置经度。 + /// + [Newtonsoft.Json.JsonProperty("longitude")] + [System.Text.Json.Serialization.JsonPropertyName("longitude")] + public double Longitude { get; set; } + + /// + /// 获取或设置地理位置纬度。 + /// + [Newtonsoft.Json.JsonProperty("latitude")] + [System.Text.Json.Serialization.JsonPropertyName("latitude")] + public double Latitude { get; set; } + + /// + /// 获取或设置地理位置名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + } + } + + /// + /// 获取或设置朋友圈 ID。 + /// + [Newtonsoft.Json.JsonProperty("moment_id")] + [System.Text.Json.Serialization.JsonPropertyName("moment_id")] + public string MomentId { get; set; } = default!; + + /// + /// 获取或设置创建者的成员账号或外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("creator")] + [System.Text.Json.Serialization.JsonPropertyName("creator")] + public string CreatorUserId { get; set; } = default!; + + /// + /// 获取或设置创建类型。 + /// + [Newtonsoft.Json.JsonProperty("create_type")] + [System.Text.Json.Serialization.JsonPropertyName("create_type")] + public int CreateType { get; set; } + + /// + /// 获取或设置可见类型。 + /// + [Newtonsoft.Json.JsonProperty("visible_type")] + [System.Text.Json.Serialization.JsonPropertyName("visible_type")] + public int VisibleType { get; set; } + + /// + /// 获取或设置文本消息信息。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public Types.Text? Text { get; set; } + + /// + /// 获取或设置图片消息列表。 + /// + [Newtonsoft.Json.JsonProperty("image")] + [System.Text.Json.Serialization.JsonPropertyName("image")] + public Types.Image[]? ImageList { get; set; } + + /// + /// 获取或设置视频消息信息。 + /// + [Newtonsoft.Json.JsonProperty("video")] + [System.Text.Json.Serialization.JsonPropertyName("video")] + public Types.Video? Video { get; set; } + + /// + /// 获取或设置网页消息信息。 + /// + [Newtonsoft.Json.JsonProperty("link")] + [System.Text.Json.Serialization.JsonPropertyName("link")] + public Types.Link? Link { get; set; } + + /// + /// 获取或设置地理位置信息。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public Types.Location? Location { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置朋友圈列表。 + /// + [Newtonsoft.Json.JsonProperty("moment_list")] + [System.Text.Json.Serialization.JsonPropertyName("moment_list")] + public Types.Moment[] MomentList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentSendResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentSendResultRequest.cs new file mode 100644 index 00000000..3fcb54e1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentSendResultRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_send_result 接口的请求。 + /// + public class CgibinExternalContactGetMomentSendResultRequest : CgibinExternalContactGetMomentCustomerListRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentSendResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentSendResultResponse.cs new file mode 100644 index 00000000..3087b958 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentSendResultResponse.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_send_result 接口的响应。 + /// + public class CgibinExternalContactGetMomentSendResultResponse : WechatWorkResponse + { + public static class Types + { + public class Result + { + /// + /// 获取或设置发送成功的外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = default!; + } + } + + /// + /// 获取或设置朋友圈发送结果列表。 + /// + [Newtonsoft.Json.JsonProperty("customer_list")] + [System.Text.Json.Serialization.JsonPropertyName("customer_list")] + public Types.Result[] ResultList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentTaskRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentTaskRequest.cs new file mode 100644 index 00000000..715b3f2d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentTaskRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_task 接口的请求。 + /// + public class CgibinExternalContactGetMomentTaskRequest : WechatWorkRequest + { + /// + /// 获取或设置朋友圈 ID。 + /// + [Newtonsoft.Json.JsonProperty("moment_id")] + [System.Text.Json.Serialization.JsonPropertyName("moment_id")] + public string MomentId { get; set; } = string.Empty; + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentTaskResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentTaskResponse.cs new file mode 100644 index 00000000..d4d8f1e8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Moment/CgibinExternalContactGetMomentTaskResponse.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/get_moment_task 接口的响应。 + /// + public class CgibinExternalContactGetMomentTaskResponse : WechatWorkResponse + { + public static class Types + { + public class Task + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置发布状态。 + /// + [Newtonsoft.Json.JsonProperty("publish_status")] + [System.Text.Json.Serialization.JsonPropertyName("publish_status")] + public int PublishStatus { get; set; } + } + } + + /// + /// 获取或设置朋友圈发布任务列表。 + /// + [Newtonsoft.Json.JsonProperty("task_list")] + [System.Text.Json.Serialization.JsonPropertyName("task_list")] + public Types.Task[] TaskList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferCustomerRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferCustomerRequest.cs new file mode 100644 index 00000000..4c0b3e9c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferCustomerRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/resigned/transfer_customer 接口的请求。 + /// + public class CgibinExternalContactResignedTransferCustomerRequest : CgibinExternalContactTransferCustomerRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferCustomerResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferCustomerResponse.cs new file mode 100644 index 00000000..a1c1889b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferCustomerResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/resigned/transfer_customer 接口的响应。 + /// + public class CgibinExternalContactResignedTransferCustomerResponse : CgibinExternalContactTransferCustomerResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferResultRequest.cs new file mode 100644 index 00000000..02f90d67 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferResultRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/resigned/transfer_result 接口的请求。 + /// + public class CgibinExternalContactResignedTransferResultRequest : CgibinExternalContactTransferResultRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferResultResponse.cs new file mode 100644 index 00000000..52a57dde --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactResignedTransferResultResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/resigned/transfer_result 接口的响应。 + /// + public class CgibinExternalContactResignedTransferResultResponse : CgibinExternalContactTransferResultResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerRequest.cs new file mode 100644 index 00000000..a7d93b2a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/transfer_customer 接口的请求。 + /// + public class CgibinExternalContactTransferCustomerRequest : WechatWorkRequest + { + /// + /// 获取或设置原成员账号。 + /// + [Newtonsoft.Json.JsonProperty("handover_userid")] + [System.Text.Json.Serialization.JsonPropertyName("handover_userid")] + public string HandoverUserId { get; set; } = string.Empty; + + /// + /// 获取或设置接替成员账号。 + /// + [Newtonsoft.Json.JsonProperty("takeover_userid")] + [System.Text.Json.Serialization.JsonPropertyName("takeover_userid")] + public string TakeoverUserId { get; set; } = string.Empty; + + /// + /// 获取或设置外部联系人账号列表。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public IList ExternalUserIdList { get; set; } = new List(); + + /// + /// 获取或设置转移成功后发给客户的消息。 + /// + [Newtonsoft.Json.JsonProperty("transfer_success_msg")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_success_msg")] + public string? TransferSuccessMessage { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerResponse.cs new file mode 100644 index 00000000..284b47df --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerResponse.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/transfer_customer 接口的响应。 + /// + public class CgibinExternalContactTransferCustomerResponse : WechatWorkResponse + { + public static class Types + { + public class Customer + { + /// + /// 获取或设置错误码。 + /// + [Newtonsoft.Json.JsonProperty("errcode")] + [System.Text.Json.Serialization.JsonPropertyName("errcode")] + public int ErrorCode { get; set; } + + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = default!; + } + } + + /// + /// 获取或设置客户列表。 + /// + [Newtonsoft.Json.JsonProperty("customer")] + [System.Text.Json.Serialization.JsonPropertyName("customer")] + public Types.Customer[] CustomerList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferResultRequest.cs new file mode 100644 index 00000000..0233a659 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferResultRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/transfer_result 接口的请求。 + /// + public class CgibinExternalContactTransferResultRequest : WechatWorkRequest + { + /// + /// 获取或设置原成员账号。 + /// + [Newtonsoft.Json.JsonProperty("handover_userid")] + [System.Text.Json.Serialization.JsonPropertyName("handover_userid")] + public string HandoverUserId { get; set; } = string.Empty; + + /// + /// 获取或设置接替成员账号。 + /// + [Newtonsoft.Json.JsonProperty("takeover_userid")] + [System.Text.Json.Serialization.JsonPropertyName("takeover_userid")] + public string TakeoverUserId { get; set; } = string.Empty; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferResultResponse.cs new file mode 100644 index 00000000..43ba96d7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferResultResponse.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/externalcontact/transfer_result 接口的响应。 + /// + public class CgibinExternalContactTransferResultResponse : WechatWorkResponse + { + public static class Types + { + public class Result + { + /// + /// 获取或设置接替状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = default!; + + /// + /// 获取或设置接替时间戳。 + /// + [Newtonsoft.Json.JsonProperty("takeover_time")] + [System.Text.Json.Serialization.JsonPropertyName("takeover_time")] + public long? TakeoverTimestamp { get; set; } + } + } + + /// + /// 获取或设置客户转交结果列表。 + /// + [Newtonsoft.Json.JsonProperty("customer")] + [System.Text.Json.Serialization.JsonPropertyName("customer")] + public Types.Result[] ResultList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +}