diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinExpress/LocalBusiness/CgibinExpressLocalBusinessOrderPreAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinExpress/LocalBusiness/CgibinExpressLocalBusinessOrderPreAddRequest.cs index b1d0d76e..09fbe4ef 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinExpress/LocalBusiness/CgibinExpressLocalBusinessOrderPreAddRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinExpress/LocalBusiness/CgibinExpressLocalBusinessOrderPreAddRequest.cs @@ -235,7 +235,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models /// [Newtonsoft.Json.JsonProperty("poi_seq")] [System.Text.Json.Serialization.JsonPropertyName("poi_seq")] - public string? POISequenceNumber { get; set; } + public string? POISequence { get; set; } /// /// 获取或设置用户下单付款时间戳。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCardInvoiceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCardInvoiceExtensions.cs new file mode 100644 index 00000000..5e9353b2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCardInvoiceExtensions.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinCardInvoiceExtensions + { + /// + /// 异步调用 [POST] /cgi-bin/card/invoice/reimburse/getinvoiceinfo 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90284 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90420 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCardInvoiceReimburseGetInvoiceInfoAsync(this WechatWorkClient client, Models.CgibinCardInvoiceReimburseGetInvoiceInfoRequest 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", "card", "invoice", "reimburse", "getinvoiceinfo") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/card/invoice/reimburse/updateinvoicestatus 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90285 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90421 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCardInvoiceReimburseUpdateInvoiceStatusAsync(this WechatWorkClient client, Models.CgibinCardInvoiceReimburseUpdateInvoiceStatusRequest 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", "card", "invoice", "reimburse", "updateinvoicestatus") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/card/invoice/reimburse/updatestatusbatch 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90286 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90422 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCardInvoiceReimburseUpdateStatusBatchAsync(this WechatWorkClient client, Models.CgibinCardInvoiceReimburseUpdateStatusBatchRequest 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", "card", "invoice", "reimburse", "updatestatusbatch") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/card/invoice/reimburse/getinvoiceinfobatch 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90287 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90423 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCardInvoiceReimburseGetInvoiceBatchAsync(this WechatWorkClient client, Models.CgibinCardInvoiceReimburseGetInvoiceBatchRequest 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", "card", "invoice", "reimburse", "getinvoiceinfobatch") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCheckinExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCheckinExtensions.cs new file mode 100644 index 00000000..d5d8faa2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCheckinExtensions.cs @@ -0,0 +1,188 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinCheckinExtensions + { + /// + /// 异步调用 [POST] /cgi-bin/checkin/getcorpcheckinoption 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93384 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCheckinGetCorpCheckinOptionAsync(this WechatWorkClient client, Models.CgibinCheckinGetCorpCheckinOptionRequest 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", "checkin", "getcorpcheckinoption") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/checkin/getcheckinoption 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90263 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94204 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCheckinGetCheckinOptionAsync(this WechatWorkClient client, Models.CgibinCheckinGetCheckinOptionRequest 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", "checkin", "getcheckinoption") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/checkin/getcheckindata 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90262 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94205 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCheckinGetCheckinDataAsync(this WechatWorkClient client, Models.CgibinCheckinGetCheckinDataRequest 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", "checkin", "getcheckindata") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/checkin/getcheckin_daydata 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93374 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94206 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCheckinGetCheckinDayDataAsync(this WechatWorkClient client, Models.CgibinCheckinGetCheckinDayDataRequest 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", "checkin", "getcheckin_daydata") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/checkin/getcheckin_monthdata 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93387 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94207 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCheckinGetCheckinMonthDataAsync(this WechatWorkClient client, Models.CgibinCheckinGetCheckinMonthDataRequest 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", "checkin", "getcheckin_monthdata") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/checkin/getcheckinschedulist 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93380 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94208 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCheckinGetCheckinScheduleListAsync(this WechatWorkClient client, Models.CgibinCheckinGetCheckinScheduleListRequest 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", "checkin", "getcheckinschedulist") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/checkin/setcheckinschedulist 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93385 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94209 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCheckinSetCheckinScheduleListAsync(this WechatWorkClient client, Models.CgibinCheckinSetCheckinScheduleListRequest 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", "checkin", "setcheckinschedulist") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/checkin/addcheckinuserface 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93378 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinCheckinAddCheckinUserFaceAsync(this WechatWorkClient client, Models.CgibinCheckinAddCheckinUserFaceRequest 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", "checkin", "addcheckinuserface") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinDialogExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinDialogExtensions.cs new file mode 100644 index 00000000..c6225fba --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinDialogExtensions.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinDialogExtensions + { + /// + /// 异步调用 [POST] /cgi-bin/dial/get_dial_record 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93662 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinDialogGetDialogRecordAsync(this WechatWorkClient client, Models.CgibinDialogGetDialogRecordRequest 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", "dial", "get_dial_record") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLivingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLivingExtensions.cs new file mode 100644 index 00000000..ff7531e7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLivingExtensions.cs @@ -0,0 +1,213 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinLivingExtensions + { + /// + /// 异步调用 [POST] /cgi-bin/living/create 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93637 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93717 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingCreateAsync(this WechatWorkClient client, Models.CgibinLivingCreateRequest 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", "living", "create") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/living/modify 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93640 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93720 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingModifyAsync(this WechatWorkClient client, Models.CgibinLivingModifyRequest 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", "living", "modify") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/living/cancel 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93638 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93718 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingCancelAsync(this WechatWorkClient client, Models.CgibinLivingCancelRequest 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", "living", "cancel") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/living/delete_replay_data 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93874 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93719 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingDeleteReplayDataAsync(this WechatWorkClient client, Models.CgibinLivingDeleteReplayDataRequest 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", "living", "delete_replay_data") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /cgi-bin/living/get_living_info 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93635 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93715 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingGetLivingInfoAsync(this WechatWorkClient client, Models.CgibinLivingGetLivingInfoRequest 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", "living", "get_living_info") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken) + .SetQueryParam("livingid", request.LivingId); + + return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/living/get_living_code 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93641 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93721 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingGetLivingCodeAsync(this WechatWorkClient client, Models.CgibinLivingGetLivingCodeRequest 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", "living", "get_living_code") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/living/get_living_share_info 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94442 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94578 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingGetLivingShareInfoAsync(this WechatWorkClient client, Models.CgibinLivingGetLivingShareInfoRequest 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", "living", "get_living_share_info") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/living/get_user_all_livingid 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93634 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93714 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingGetUserAllLivingIdAsync(this WechatWorkClient client, Models.CgibinLivingGetUserAllLivingIdRequest 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", "living", "get_user_all_livingid") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/living/get_watch_stat 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93636 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93716 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinLivingGetWatchStatAsync(this WechatWorkClient client, Models.CgibinLivingGetWatchStatRequest 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", "living", "get_watch_stat") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs new file mode 100644 index 00000000..af59bbc2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinMeetingExtensions + { + /// + /// 异步调用 [POST] /cgi-bin/meeting/create 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93627 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93706 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingCreateAsync(this WechatWorkClient client, Models.CgibinMeetingCreateRequest 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", "meeting", "create") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/update 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93631 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93710 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingUpdateAsync(this WechatWorkClient client, Models.CgibinMeetingUpdateRequest 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", "meeting", "update") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/cancel 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93630 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93709 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingCancelAsync(this WechatWorkClient client, Models.CgibinMeetingCancelRequest 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", "meeting", "cancel") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/get_info 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93629 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93708 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingGetInfoAsync(this WechatWorkClient client, Models.CgibinMeetingGetInfoRequest 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", "meeting", "get_info") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/get_user_meetingid 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93628 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93707 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingGetUserMeetingIdAsync(this WechatWorkClient client, Models.CgibinMeetingGetUserMeetingIdRequest 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", "meeting", "get_user_meetingid") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinOAExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinOAExtensions.cs new file mode 100644 index 00000000..0c3089c1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinOAExtensions.cs @@ -0,0 +1,367 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinOAExtensions + { + #region MeetingRoom + /// + /// 异步调用 [POST] /cgi-bin/oa/meetingroom/add 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93619 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAMeetingRoomAddAsync(this WechatWorkClient client, Models.CgibinOAMeetingRoomAddRequest 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", "oa", "meetingroom", "add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/meetingroom/list 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93619 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAMeetingRoomListAsync(this WechatWorkClient client, Models.CgibinOAMeetingRoomListRequest 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", "oa", "meetingroom", "list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/meetingroom/edit 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93619 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAMeetingRoomEditAsync(this WechatWorkClient client, Models.CgibinOAMeetingRoomEditRequest 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", "oa", "meetingroom", "edit") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/meetingroom/del 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93619 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAMeetingRoomDeleteAsync(this WechatWorkClient client, Models.CgibinOAMeetingRoomDeleteRequest 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", "oa", "meetingroom", "del") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + #region MeetingRoomBook + /// + /// 异步调用 [POST] /cgi-bin/oa/meetingroom/get_booking_info 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93620 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAMeetingRoomGetBookingInfoAsync(this WechatWorkClient client, Models.CgibinOAMeetingRoomGetBookingInfoRequest 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", "oa", "meetingroom", "get_booking_info") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/meetingroom/book 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93620 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAMeetingRoomBookAsync(this WechatWorkClient client, Models.CgibinOAMeetingRoomBookRequest 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", "oa", "meetingroom", "book") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/meetingroom/cancel_book 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93620 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAMeetingRoomCancelBookAsync(this WechatWorkClient client, Models.CgibinOAMeetingRoomCancelBookRequest 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", "oa", "meetingroom", "cancel_book") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + #endregion + + #region Calendar + /// + /// 异步调用 [POST] /cgi-bin/oa/calendar/add 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93647 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93702 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOACalendarAddAsync(this WechatWorkClient client, Models.CgibinOACalendarAddRequest 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", "oa", "calendar", "add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/calendar/update 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93647 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93702 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOACalendarUpdateAsync(this WechatWorkClient client, Models.CgibinOACalendarUpdateRequest 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", "oa", "calendar", "update") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/calendar/get 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93647 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93702 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOACalendarGetAsync(this WechatWorkClient client, Models.CgibinOACalendarGetRequest 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", "oa", "calendar", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/calendar/del 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93647 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93702 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOACalendarDeleteAsync(this WechatWorkClient client, Models.CgibinOACalendarDeleteRequest 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", "oa", "calendar", "del") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region Schedule + /// + /// 异步调用 [POST] /cgi-bin/oa/schedule/add 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93648 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93703 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAScheduleAddAsync(this WechatWorkClient client, Models.CgibinOAScheduleAddRequest 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", "oa", "schedule", "add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/schedule/update 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93648 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93703 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAScheduleUpdateAsync(this WechatWorkClient client, Models.CgibinOAScheduleUpdateRequest 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", "oa", "schedule", "update") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/schedule/get 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93648 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93703 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAScheduleGetAsync(this WechatWorkClient client, Models.CgibinOAScheduleGetRequest 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", "oa", "schedule", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/schedule/get_by_calendar 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93648 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93703 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAScheduleGetByCalendarAsync(this WechatWorkClient client, Models.CgibinOAScheduleGetByCalendarRequest 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", "oa", "schedule", "get_by_calendar") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/oa/schedule/del 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93648 + /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93703 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOAScheduleDeleteAsync(this WechatWorkClient client, Models.CgibinOAScheduleDeleteRequest 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", "oa", "schedule", "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/Extensions/WechatWorkClientExecuteCgibinPSTNCCExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinPSTNCCExtensions.cs new file mode 100644 index 00000000..70fd5bfb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinPSTNCCExtensions.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinPSTNCCExtensions + { + /// + /// 异步调用 [POST] /cgi-bin/pstncc/call 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91627 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinPSTNCCCallAsync(this WechatWorkClient client, Models.CgibinPSTNCCCallRequest 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", "pstncc", "call") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/pstncc/getstates 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91628 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinPSTNCCGetStatesAsync(this WechatWorkClient client, Models.CgibinPSTNCCGetStatesRequest 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", "pstncc", "getstates") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWebDriveExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWebDriveExtensions.cs new file mode 100644 index 00000000..010ff6f8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWebDriveExtensions.cs @@ -0,0 +1,442 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinWebDriveExtensions + { + #region Space + /// + /// 异步调用 [POST] /cgi-bin/wedrive/space_create 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93655 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveSpaceCreateAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceCreateRequest 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", "wedrive", "space_create") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/space_rename 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93655 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveSpaceRenameAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceRenameRequest 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", "wedrive", "space_rename") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/space_dismiss 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93655 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveSpaceDismissAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceDismissRequest 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", "wedrive", "space_dismiss") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/space_info 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93655 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveSpaceInfoAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceInfoRequest 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", "wedrive", "space_info") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/space_setting 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93656 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveSpaceSettingAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceSettingRequest 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", "wedrive", "space_setting") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/space_share 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93656 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveSpaceShareAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceShareRequest 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", "wedrive", "space_share") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region SpaceACL + /// + /// 异步调用 [POST] /cgi-bin/wedrive/space_acl_add 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93656 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveSpaceACLAddAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceACLAddRequest 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", "wedrive", "space_acl_add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/space_acl_del 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93656 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveSpaceACLDeleteAsync(this WechatWorkClient client, Models.CgibinWebDriveSpaceACLDeleteRequest 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", "wedrive", "space_acl_del") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region File + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_list 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileListAsync(this WechatWorkClient client, Models.CgibinWebDriveFileListRequest 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", "wedrive", "file_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_upload 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileUploadAsync(this WechatWorkClient client, Models.CgibinWebDriveFileUploadRequest 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", "wedrive", "file_upload") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_download 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileDownloadAsync(this WechatWorkClient client, Models.CgibinWebDriveFileDownloadRequest 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", "wedrive", "file_download") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_create 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileCreateAsync(this WechatWorkClient client, Models.CgibinWebDriveFileCreateRequest 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", "wedrive", "file_create") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_rename 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileRenameAsync(this WechatWorkClient client, Models.CgibinWebDriveFileRenameRequest 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", "wedrive", "file_rename") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_move 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileMoveAsync(this WechatWorkClient client, Models.CgibinWebDriveFileMoveRequest 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", "wedrive", "file_move") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_delete 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileDeleteAsync(this WechatWorkClient client, Models.CgibinWebDriveFileDeleteRequest 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", "wedrive", "file_delete") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_info 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93657 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileInfoAsync(this WechatWorkClient client, Models.CgibinWebDriveFileInfoRequest 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", "wedrive", "file_info") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_setting 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93658 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileSettingAsync(this WechatWorkClient client, Models.CgibinWebDriveFileSettingRequest 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", "wedrive", "file_setting") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_share 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93658 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileShareAsync(this WechatWorkClient client, Models.CgibinWebDriveFileShareRequest 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", "wedrive", "file_share") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region FileACL + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_acl_add 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93658 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileACLAddAsync(this WechatWorkClient client, Models.CgibinWebDriveFileACLAddRequest 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", "wedrive", "file_acl_add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/wedrive/file_acl_del 接口。 + /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93658 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinWebDriveFileACLDeleteAsync(this WechatWorkClient client, Models.CgibinWebDriveFileACLDeleteRequest 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", "wedrive", "file_acl_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/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceBatchRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceBatchRequest.cs new file mode 100644 index 00000000..2040ac53 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceBatchRequest.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/card/invoice/reimburse/getinvoicebatch 接口的请求。 + /// + public class CgibinCardInvoiceReimburseGetInvoiceBatchRequest : WechatWorkRequest + { + public static class Types + { + public class InvoiceCard + { + /// + /// 获取或设置发票卡券模板编号。 + /// + [Newtonsoft.Json.JsonProperty("card_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_id")] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置经过加密的发票卡券 Code。 + /// + [Newtonsoft.Json.JsonProperty("encrypt_code")] + [System.Text.Json.Serialization.JsonPropertyName("encrypt_code")] + public string EncryptedCardCode { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置发票卡券列表。 + /// + [Newtonsoft.Json.JsonProperty("item_list")] + [System.Text.Json.Serialization.JsonPropertyName("item_list")] + public IList InvoiceCardList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceBatchResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceBatchResponse.cs new file mode 100644 index 00000000..12b36183 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceBatchResponse.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/card/invoice/reimburse/getinvoicebatch 接口的响应。 + /// + public class CgibinCardInvoiceReimburseGetInvoiceBatchResponse : WechatWorkResponse + { + public static class Types + { + public class InvoiceCard + { + public static class Types + { + public class Invoice : CgibinCardInvoiceReimburseGetInvoiceInfoResponse.Types.Invoice + { + } + } + + /// + /// 获取或设置发票卡券模板编号。 + /// + [Newtonsoft.Json.JsonProperty("card_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_id")] + public string CardId { get; set; } = default!; + + /// + /// 获取或设置发票的有效期起始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("begin_time")] + [System.Text.Json.Serialization.JsonPropertyName("begin_time")] + public long BeginTimestamp { get; set; } + + /// + /// 获取或设置发票的有效期截止时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置发票卡券模板编号。 + /// + [Newtonsoft.Json.JsonProperty("user_card_status")] + [System.Text.Json.Serialization.JsonPropertyName("user_card_status")] + public string CardStatus { get; set; } = default!; + + /// + /// 获取或设置获得发票的用户 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置开票类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string Type { get; set; } = default!; + + /// + /// 获取或设置开票方全称。 + /// + [Newtonsoft.Json.JsonProperty("payee")] + [System.Text.Json.Serialization.JsonPropertyName("payee")] + public string Payee { get; set; } = default!; + + /// + /// 获取或设置开票详情。 + /// + [Newtonsoft.Json.JsonProperty("detail")] + [System.Text.Json.Serialization.JsonPropertyName("detail")] + public string Detail { get; set; } = default!; + + /// + /// 获取或设置发票信息。 + /// + [Newtonsoft.Json.JsonProperty("user_info")] + [System.Text.Json.Serialization.JsonPropertyName("user_info")] + public Types.Invoice Invoice { get; set; } = default!; + } + } + + /// + /// 获取或设置发票卡券列表。 + /// + [Newtonsoft.Json.JsonProperty("item_list")] + [System.Text.Json.Serialization.JsonPropertyName("item_list")] + public Types.InvoiceCard[] InvoiceCardList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceInfoRequest.cs new file mode 100644 index 00000000..5cd5c6fd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceInfoRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/card/invoice/reimburse/getinvoiceinfo 接口的请求。 + /// + public class CgibinCardInvoiceReimburseGetInvoiceInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置发票卡券模板编号。 + /// + [Newtonsoft.Json.JsonProperty("card_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_id")] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置经过加密的发票卡券 Code。 + /// + [Newtonsoft.Json.JsonProperty("encrypt_code")] + [System.Text.Json.Serialization.JsonPropertyName("encrypt_code")] + public string EncryptedCardCode { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceInfoResponse.cs new file mode 100644 index 00000000..6f51301d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseGetInvoiceInfoResponse.cs @@ -0,0 +1,261 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/card/invoice/reimburse/getinvoiceinfo 接口的响应。 + /// + public class CgibinCardInvoiceReimburseGetInvoiceInfoResponse : WechatWorkResponse + { + public static class Types + { + public class Invoice + { + public static class Types + { + public class InvoiceItem + { + /// + /// 获取或设置项目名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置计量单位。 + /// + [Newtonsoft.Json.JsonProperty("unit")] + [System.Text.Json.Serialization.JsonPropertyName("unit")] + public string? Unit { get; set; } + + /// + /// 获取或设置项目数量。 + /// + [Newtonsoft.Json.JsonProperty("num")] + [System.Text.Json.Serialization.JsonPropertyName("num")] + public int? Count { get; set; } + + /// + /// 获取或设置项目单价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("price")] + [System.Text.Json.Serialization.JsonPropertyName("price")] + public int Price { get; set; } + } + } + + /// + /// 获取或设置发票抬头。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = default!; + + /// + /// 获取或设置不含税金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("fee_without_tax")] + [System.Text.Json.Serialization.JsonPropertyName("fee_without_tax")] + public int FeeWithoutTax { get; set; } + + /// + /// 获取或设置发票金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("fee")] + [System.Text.Json.Serialization.JsonPropertyName("fee")] + public int Fee { get; set; } + + /// + /// 获取或设置税额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("tax")] + [System.Text.Json.Serialization.JsonPropertyName("tax")] + public int Tax { get; set; } + + /// + /// 获取或设置发票号码。 + /// + [Newtonsoft.Json.JsonProperty("billing_no")] + [System.Text.Json.Serialization.JsonPropertyName("billing_no")] + public string InvoiceCode { get; set; } = default!; + + /// + /// 获取或设置发票代码。 + /// + [Newtonsoft.Json.JsonProperty("billing_code")] + [System.Text.Json.Serialization.JsonPropertyName("billing_code")] + public string InvoiceNumber { get; set; } = default!; + + /// + /// 获取或设置开票时间戳。 + /// + [Newtonsoft.Json.JsonProperty("billing_time")] + [System.Text.Json.Serialization.JsonPropertyName("billing_time")] + public long InvoiceTimestamp { get; set; } + + /// + /// 获取或设置发票行项目数据列表。 + /// + [Newtonsoft.Json.JsonProperty("info")] + [System.Text.Json.Serialization.JsonPropertyName("info")] + public Types.InvoiceItem[]? InvoiceItemList { get; set; } + + /// + /// 获取或设置校验码。 + /// + [Newtonsoft.Json.JsonProperty("check_code")] + [System.Text.Json.Serialization.JsonPropertyName("check_code")] + public string CheckCode { get; set; } = default!; + + /// + /// 获取或设置发票详情。 + /// + [Newtonsoft.Json.JsonProperty("detail")] + [System.Text.Json.Serialization.JsonPropertyName("detail")] + public string Detail { get; set; } = default!; + + /// + /// 获取或设置发票报销状态。 + /// + [Newtonsoft.Json.JsonProperty("reimburse_status")] + [System.Text.Json.Serialization.JsonPropertyName("reimburse_status")] + public string ReimburseStatus { get; set; } = default!; + + /// + /// 获取或设置发票文件 URL。 + /// + [Newtonsoft.Json.JsonProperty("pdf_url")] + [System.Text.Json.Serialization.JsonPropertyName("pdf_url")] + public string PdfUrl { get; set; } = default!; + + /// + /// 获取或设置其它消费附件 URL。 + /// + [Newtonsoft.Json.JsonProperty("trip_pdf_url")] + [System.Text.Json.Serialization.JsonPropertyName("trip_pdf_url")] + public string? TripUrl { get; set; } + + /// + /// 获取或设置购买方纳税人识别号。 + /// + [Newtonsoft.Json.JsonProperty("buyer_number")] + [System.Text.Json.Serialization.JsonPropertyName("buyer_number")] + public string BuyerTaxNumber { get; set; } = default!; + + /// + /// 获取或设置购买方地址、电话。 + /// + [Newtonsoft.Json.JsonProperty("buyer_address_and_phone")] + [System.Text.Json.Serialization.JsonPropertyName("buyer_address_and_phone")] + public string? BuyerAddressAndPhoneNumber { get; set; } + + /// + /// 获取或设置购买方开户行、银行账号。 + /// + [Newtonsoft.Json.JsonProperty("buyer_bank_account")] + [System.Text.Json.Serialization.JsonPropertyName("buyer_bank_account")] + public string? BuyerBankAccount { get; set; } + + /// + /// 获取或设置销售方纳税人识别号。 + /// + [Newtonsoft.Json.JsonProperty("seller_number")] + [System.Text.Json.Serialization.JsonPropertyName("seller_number")] + public string? SellerTaxNumber { get; set; } + + /// + /// 获取或设置销售方纳税人地址、电话。 + /// + [Newtonsoft.Json.JsonProperty("seller_address_and_phone")] + [System.Text.Json.Serialization.JsonPropertyName("seller_address_and_phone")] + public string? SellerAddressAndPhoneNumber { get; set; } + + /// + /// 获取或设置销售方开户行、银行账号。 + /// + [Newtonsoft.Json.JsonProperty("seller_bank_account")] + [System.Text.Json.Serialization.JsonPropertyName("seller_bank_account")] + public string? SellerBankAccount { get; set; } + + /// + /// 获取或设置备注。 + /// + [Newtonsoft.Json.JsonProperty("remarks")] + [System.Text.Json.Serialization.JsonPropertyName("remarks")] + public string? Remark { get; set; } + + /// + /// 获取或设置开票人。 + /// + [Newtonsoft.Json.JsonProperty("maker")] + [System.Text.Json.Serialization.JsonPropertyName("maker")] + public string? Drawer { get; set; } + + /// + /// 获取或设置收款人。 + /// + [Newtonsoft.Json.JsonProperty("cashier")] + [System.Text.Json.Serialization.JsonPropertyName("cashier")] + public string? Cashier { get; set; } + } + } + + /// + /// 获取或设置发票卡券模板编号。 + /// + [Newtonsoft.Json.JsonProperty("card_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_id")] + public string CardId { get; set; } = default!; + + /// + /// 获取或设置发票的有效期起始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("begin_time")] + [System.Text.Json.Serialization.JsonPropertyName("begin_time")] + public long BeginTimestamp { get; set; } + + /// + /// 获取或设置发票的有效期截止时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置获得发票的用户 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置开票类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string Type { get; set; } = default!; + + /// + /// 获取或设置开票方全称。 + /// + [Newtonsoft.Json.JsonProperty("payee")] + [System.Text.Json.Serialization.JsonPropertyName("payee")] + public string Payee { get; set; } = default!; + + /// + /// 获取或设置开票详情。 + /// + [Newtonsoft.Json.JsonProperty("detail")] + [System.Text.Json.Serialization.JsonPropertyName("detail")] + public string Detail { get; set; } = default!; + + /// + /// 获取或设置发票信息。 + /// + [Newtonsoft.Json.JsonProperty("user_info")] + [System.Text.Json.Serialization.JsonPropertyName("user_info")] + public Types.Invoice Invoice { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateInvoiceStatusRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateInvoiceStatusRequest.cs new file mode 100644 index 00000000..dd6b5570 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateInvoiceStatusRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/card/invoice/reimburse/updateinvoicestatus 接口的请求。 + /// + public class CgibinCardInvoiceReimburseUpdateInvoiceStatusRequest : WechatWorkRequest + { + /// + /// 获取或设置发票卡券模板编号。 + /// + [Newtonsoft.Json.JsonProperty("card_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_id")] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置经过加密的发票卡券 Code。 + /// + [Newtonsoft.Json.JsonProperty("encrypt_code")] + [System.Text.Json.Serialization.JsonPropertyName("encrypt_code")] + public string EncryptedCardCode { get; set; } = string.Empty; + + /// + /// 获取或设置发票报销状态。 + /// + [Newtonsoft.Json.JsonProperty("reimburse_status")] + [System.Text.Json.Serialization.JsonPropertyName("reimburse_status")] + public string ReimburseStatus { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateInvoiceStatusResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateInvoiceStatusResponse.cs new file mode 100644 index 00000000..08dd2cd8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateInvoiceStatusResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/card/invoice/reimburse/updateinvoicestatus 接口的响应。 + /// + public class CgibinCardInvoiceReimburseUpdateInvoiceStatusResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateStatusBatchRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateStatusBatchRequest.cs new file mode 100644 index 00000000..0f18ad63 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateStatusBatchRequest.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/card/invoice/reimburse/updatestatusbatch 接口的请求。 + /// + public class CgibinCardInvoiceReimburseUpdateStatusBatchRequest : WechatWorkRequest + { + public static class Types + { + public class InvoiceCard + { + /// + /// 获取或设置发票卡券模板编号。 + /// + [Newtonsoft.Json.JsonProperty("card_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_id")] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置经过加密的发票卡券 Code。 + /// + [Newtonsoft.Json.JsonProperty("encrypt_code")] + [System.Text.Json.Serialization.JsonPropertyName("encrypt_code")] + public string EncryptedCardCode { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置获得发票的用户 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置发票报销状态。 + /// + [Newtonsoft.Json.JsonProperty("reimburse_status")] + [System.Text.Json.Serialization.JsonPropertyName("reimburse_status")] + public string ReimburseStatus { get; set; } = string.Empty; + + /// + /// 获取或设置发票卡券列表。 + /// + [Newtonsoft.Json.JsonProperty("invoice_list")] + [System.Text.Json.Serialization.JsonPropertyName("invoice_list")] + public IList InvoiceCardList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateStatusBatchResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateStatusBatchResponse.cs new file mode 100644 index 00000000..2a457c0a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCardInvoice/CgibinCardInvoiceReimburseUpdateStatusBatchResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/card/invoice/reimburse/updatestatusbatch 接口的响应。 + /// + public class CgibinCardInvoiceReimburseUpdateStatusBatchResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinAddCheckinUserFaceRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinAddCheckinUserFaceRequest.cs new file mode 100644 index 00000000..7644d2c6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinAddCheckinUserFaceRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/addcheckinuserface 接口的请求。 + /// + public class CgibinCheckinAddCheckinUserFaceRequest : WechatWorkRequest + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置经过 Base64 编码的人脸图片数据。 + /// + [Newtonsoft.Json.JsonProperty("userface")] + [System.Text.Json.Serialization.JsonPropertyName("userface")] + public string UserFaceImageData { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinAddCheckinUserFaceResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinAddCheckinUserFaceResponse.cs new file mode 100644 index 00000000..5ecb72d9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinAddCheckinUserFaceResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/addcheckinuserface 接口的响应。 + /// + public class CgibinCheckinAddCheckinUserFaceResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDataRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDataRequest.cs new file mode 100644 index 00000000..445dd867 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDataRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckindata 接口的请求。 + /// + public class CgibinCheckinGetCheckinDataRequest : WechatWorkRequest + { + /// + /// 获取或设置打卡类型。 + /// + [Newtonsoft.Json.JsonProperty("opencheckindatatype")] + [System.Text.Json.Serialization.JsonPropertyName("opencheckindatatype")] + public int CheckinDataType { get; set; } + + /// + /// 获取或设置指定记录的开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("starttime")] + [System.Text.Json.Serialization.JsonPropertyName("starttime")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置指定记录的结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("endtime")] + [System.Text.Json.Serialization.JsonPropertyName("endtime")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置指定成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("useridlist")] + [System.Text.Json.Serialization.JsonPropertyName("useridlist")] + public IList UserIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDataResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDataResponse.cs new file mode 100644 index 00000000..aca4b00d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDataResponse.cs @@ -0,0 +1,150 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckindata 接口的响应。 + /// + public class CgibinCheckinGetCheckinDataResponse : WechatWorkResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置打卡规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public int GroupId { get; set; } + + /// + /// 获取或设置打卡规则名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string GroupName { get; set; } = default!; + + /// + /// 获取或设置打卡类型。 + /// + [Newtonsoft.Json.JsonProperty("checkin_type")] + [System.Text.Json.Serialization.JsonPropertyName("checkin_type")] + public string CheckinType { get; set; } = default!; + + /// + /// 获取或设置异常类型。 + /// + [Newtonsoft.Json.JsonProperty("exception_type")] + [System.Text.Json.Serialization.JsonPropertyName("exception_type")] + public string ExceptionType { get; set; } = default!; + + /// + /// 获取或设置打卡时间戳。 + /// + [Newtonsoft.Json.JsonProperty("checkin_time")] + [System.Text.Json.Serialization.JsonPropertyName("checkin_time")] + public long CheckinTimestamp { get; set; } + + /// + /// 获取或设置标准打卡时间戳。 + /// + [Newtonsoft.Json.JsonProperty("sch_checkin_time")] + [System.Text.Json.Serialization.JsonPropertyName("sch_checkin_time")] + public long StandardCheckinTimestamp { get; set; } + + /// + /// 获取或设置打卡地点名称。 + /// + [Newtonsoft.Json.JsonProperty("location_title")] + [System.Text.Json.Serialization.JsonPropertyName("location_title")] + public string? LocationTitle { get; set; } + + /// + /// 获取或设置打卡地点详情。 + /// + [Newtonsoft.Json.JsonProperty("location_detail")] + [System.Text.Json.Serialization.JsonPropertyName("location_detail")] + public string? LocationDetail { get; set; } + + /// + /// 获取或设置打卡地点经度。 + /// + [Newtonsoft.Json.JsonProperty("lng")] + [System.Text.Json.Serialization.JsonPropertyName("lng")] + public double? LocationLongitude { get; set; } + + /// + /// 获取或设置打卡地点纬度。 + /// + [Newtonsoft.Json.JsonProperty("lat")] + [System.Text.Json.Serialization.JsonPropertyName("lat")] + public double? LocationLatitude { get; set; } + + /// + /// 获取或设置打卡 Wi-Fi 名称。 + /// + [Newtonsoft.Json.JsonProperty("wifiname")] + [System.Text.Json.Serialization.JsonPropertyName("wifiname")] + public string? WiFiName { get; set; } + + /// + /// 获取或设置打卡 Wi-Fi 的 MAC 地址或 BSSID。 + /// + [Newtonsoft.Json.JsonProperty("wifimac")] + [System.Text.Json.Serialization.JsonPropertyName("wifimac")] + public string? WiFiMac { get; set; } + + /// + /// 获取或设置打卡设备号。 + /// + [Newtonsoft.Json.JsonProperty("deviceid")] + [System.Text.Json.Serialization.JsonPropertyName("deviceid")] + public string? DeviceId { get; set; } + + /// + /// 获取或设置排班 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public int? ScheduleId { get; set; } + + /// + /// 获取或设置时段 ID。 + /// + [Newtonsoft.Json.JsonProperty("timeline_id")] + [System.Text.Json.Serialization.JsonPropertyName("timeline_id")] + public int? TimeSectionId { get; set; } + + /// + /// 获取或设置备注。 + /// + [Newtonsoft.Json.JsonProperty("notes")] + [System.Text.Json.Serialization.JsonPropertyName("notes")] + public string? Notes { get; set; } + + /// + /// 获取或设置备注附件图片 MediaId 列表。 + /// + [Newtonsoft.Json.JsonProperty("mediaids")] + [System.Text.Json.Serialization.JsonPropertyName("mediaids")] + public string[]? NotesMediaIdList { get; set; } + } + } + + /// + /// 获取或设置打卡记录列表。 + /// + [Newtonsoft.Json.JsonProperty("checkindata")] + [System.Text.Json.Serialization.JsonPropertyName("checkindata")] + public Types.Data[] DataList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDayDataRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDayDataRequest.cs new file mode 100644 index 00000000..8b50dea8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDayDataRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckin_daydata 接口的请求。 + /// + public class CgibinCheckinGetCheckinDayDataRequest : WechatWorkRequest + { + /// + /// 获取或设置指定开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("starttime")] + [System.Text.Json.Serialization.JsonPropertyName("starttime")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置指定结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("endtime")] + [System.Text.Json.Serialization.JsonPropertyName("endtime")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置指定成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("useridlist")] + [System.Text.Json.Serialization.JsonPropertyName("useridlist")] + public IList UserIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDayDataResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDayDataResponse.cs new file mode 100644 index 00000000..6c4d5235 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinDayDataResponse.cs @@ -0,0 +1,374 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckin_daydata 接口的响应。 + /// + public class CgibinCheckinGetCheckinDayDataResponse : WechatWorkResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Base + { + public static class Types + { + public class CheckinGroup + { + public static class Types + { + public class CheckinTime + { + /// + /// 获取或设置上班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("work_sec")] + public int OnWorkTime { get; set; } + + /// + /// 获取或设置下班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("off_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("off_work_sec")] + public int OffWorkTime { get; set; } + } + } + + /// + /// 获取或设置打卡规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public int GroupId { get; set; } + + /// + /// 获取或设置打卡规则名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string GroupName { get; set; } = default!; + + /// + /// 获取或设置排班 ID。 + /// + [Newtonsoft.Json.JsonProperty("scheduleid")] + [System.Text.Json.Serialization.JsonPropertyName("scheduleid")] + public int? ScheduleId { get; set; } + + /// + /// 获取或设置排班名称。 + /// + [Newtonsoft.Json.JsonProperty("schedulename")] + [System.Text.Json.Serialization.JsonPropertyName("schedulename")] + public string? ScheduleName { get; set; } + + /// + /// 获取或设置当日打卡时间列表。 + /// + [Newtonsoft.Json.JsonProperty("checkintime")] + [System.Text.Json.Serialization.JsonPropertyName("checkintime")] + public Types.CheckinTime[] CheckinTimeList { get; set; } = default!; + } + } + + /// + /// 获取或设置日报日期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("date")] + [System.Text.Json.Serialization.JsonPropertyName("date")] + public long DateTimestamp { get; set; } + + /// + /// 获取或设置日报类型。 + /// + [Newtonsoft.Json.JsonProperty("day_type")] + [System.Text.Json.Serialization.JsonPropertyName("day_type")] + public int DayType { get; set; } + + /// + /// 获取或设置记录类型。 + /// + [Newtonsoft.Json.JsonProperty("record_type")] + [System.Text.Json.Serialization.JsonPropertyName("record_type")] + public int RecordType { get; set; } + + /// + /// 获取或设置打卡人成员账号。 + /// + [Newtonsoft.Json.JsonProperty("acctid")] + [System.Text.Json.Serialization.JsonPropertyName("acctid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置打卡人姓名。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置打卡人别名。 + /// + [Newtonsoft.Json.JsonProperty("name_ex")] + [System.Text.Json.Serialization.JsonPropertyName("name_ex")] + public string Alias { get; set; } = default!; + + /// + /// 获取或设置打卡人所在部门。 + /// + [Newtonsoft.Json.JsonProperty("departs_name")] + [System.Text.Json.Serialization.JsonPropertyName("departs_name")] + public string DepartmentsName { get; set; } = default!; + + /// + /// 获取或设置打卡规则信息。 + /// + [Newtonsoft.Json.JsonProperty("rule_info")] + [System.Text.Json.Serialization.JsonPropertyName("rule_info")] + public Types.CheckinGroup CheckinGroup { get; set; } = default!; + } + + public class Summary + { + /// + /// 获取或设置打卡次数。 + /// + [Newtonsoft.Json.JsonProperty("checkin_count")] + [System.Text.Json.Serialization.JsonPropertyName("checkin_count")] + public int CheckinCount { get; set; } + + /// + /// 获取或设置实际工作时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("regular_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("regular_work_sec")] + public int RegularWorkTime { get; set; } + + /// + /// 获取或设置标准工作时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("standard_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("standard_work_sec")] + public int StandardWorkTime { get; set; } + + /// + /// 获取或设置最早打卡时间据当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("earliest_time")] + [System.Text.Json.Serialization.JsonPropertyName("earliest_time")] + public int EarliestCheckinTime { get; set; } + + /// + /// 获取或设置最晚打卡时间据当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("lastest_time")] + [System.Text.Json.Serialization.JsonPropertyName("lastest_time")] + public int LatestCheckinTime { get; set; } + } + + public class Holiday + { + public static class Types + { + public class ApprovalDataList + { + /// + /// 获取或设置数据列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public ApprovalDataItem[] Items { get; set; } = default!; + } + + public class ApprovalDataItem + { + /// + /// 获取或设置语言类型。 + /// + [Newtonsoft.Json.JsonProperty("lang")] + [System.Text.Json.Serialization.JsonPropertyName("lang")] + public string Language { get; set; } = default!; + + /// + /// 获取或设置文本信息。 + /// + [Newtonsoft.Json.JsonProperty("text")] + [System.Text.Json.Serialization.JsonPropertyName("text")] + public string Text { get; set; } = default!; + } + } + + /// + /// 获取或设置假勤审批 ID。 + /// + [Newtonsoft.Json.JsonProperty("sp_number")] + [System.Text.Json.Serialization.JsonPropertyName("sp_number")] + public string ApprovalNumber { get; set; } = default!; + + /// + /// 获取或设置假勤摘要标题数据列表。 + /// + [Newtonsoft.Json.JsonProperty("sp_title")] + [System.Text.Json.Serialization.JsonPropertyName("sp_title")] + public Types.ApprovalDataList ApprovalTitleDataList { get; set; } = default!; + + /// + /// 获取或设置假勤摘要描述数据列表。 + /// + [Newtonsoft.Json.JsonProperty("sp_description")] + [System.Text.Json.Serialization.JsonPropertyName("sp_description")] + public Types.ApprovalDataList ApprovalDescriptionDataList { get; set; } = default!; + } + + public class Vacation + { + /// + /// 获取或设置统计项名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置假勤类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置请假类型。 + /// + [Newtonsoft.Json.JsonProperty("vacation_id")] + [System.Text.Json.Serialization.JsonPropertyName("vacation_id")] + public int? VacationId { get; set; } + + /// + /// 获取或设置时长单位。 + /// + [Newtonsoft.Json.JsonProperty("time_type")] + [System.Text.Json.Serialization.JsonPropertyName("time_type")] + public int TimeType { get; set; } + + /// + /// 获取或设置当日假勤时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("duration")] + [System.Text.Json.Serialization.JsonPropertyName("duration")] + public int Duration { get; set; } + + /// + /// 获取或设置当日假勤次数。 + /// + [Newtonsoft.Json.JsonProperty("count")] + [System.Text.Json.Serialization.JsonPropertyName("count")] + public int Count { get; set; } + } + + public class Exception + { + /// + /// 获取或设置异常状态类型。 + /// + [Newtonsoft.Json.JsonProperty("exception")] + [System.Text.Json.Serialization.JsonPropertyName("exception")] + public int ExceptionType { get; set; } + + /// + /// 获取或设置此异常的累计时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("duration")] + [System.Text.Json.Serialization.JsonPropertyName("duration")] + public int? Duration { get; set; } + + /// + /// 获取或设置此异常的次数。 + /// + [Newtonsoft.Json.JsonProperty("count")] + [System.Text.Json.Serialization.JsonPropertyName("count")] + public int Count { get; set; } + } + + public class Overtime + { + /// + /// 获取或设置加班状态。 + /// + [Newtonsoft.Json.JsonProperty("ot_status")] + [System.Text.Json.Serialization.JsonPropertyName("ot_status")] + public int OvertimeStatus { get; set; } + + /// + /// 获取或设置加班时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("ot_duration")] + [System.Text.Json.Serialization.JsonPropertyName("ot_duration")] + public int OvertimeDuration { get; set; } + + /// + /// 获取或设置加班不足的时长列表(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("exception_duration")] + [System.Text.Json.Serialization.JsonPropertyName("exception_duration")] + public int[]? ExceptionDurationList { get; set; } + } + } + + /// + /// 获取或设置基础信息。 + /// + [Newtonsoft.Json.JsonProperty("base_info")] + [System.Text.Json.Serialization.JsonPropertyName("base_info")] + public Types.Base Base { get; set; } = default!; + + /// + /// 获取或设置汇总信息。 + /// + [Newtonsoft.Json.JsonProperty("summary_info")] + [System.Text.Json.Serialization.JsonPropertyName("summary_info")] + public Types.Summary Summary { get; set; } = default!; + + /// + /// 获取或设置假勤信息列表。 + /// + [Newtonsoft.Json.JsonProperty("holiday_infos")] + [System.Text.Json.Serialization.JsonPropertyName("holiday_infos")] + public Types.Holiday[]? HolidayList { get; set; } + + /// + /// 获取或设置假勤信息列表。 + /// + [Newtonsoft.Json.JsonProperty("sp_items")] + [System.Text.Json.Serialization.JsonPropertyName("sp_items")] + public Types.Vacation[]? VacationList { get; set; } + + /// + /// 获取或设置异常信息列表。 + /// + [Newtonsoft.Json.JsonProperty("exception_infos")] + [System.Text.Json.Serialization.JsonPropertyName("exception_infos")] + public Types.Exception[]? ExceptionList { get; set; } + + /// + /// 获取或设置加班信息。 + /// + [Newtonsoft.Json.JsonProperty("ot_info")] + [System.Text.Json.Serialization.JsonPropertyName("ot_info")] + public Types.Overtime? Overtime { get; set; } + } + } + + /// + /// 获取或设置打卡日报列表。 + /// + [Newtonsoft.Json.JsonProperty("datas")] + [System.Text.Json.Serialization.JsonPropertyName("datas")] + public Types.Data[] DataList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinMonthDataRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinMonthDataRequest.cs new file mode 100644 index 00000000..6c2aeed3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinMonthDataRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckin_monthdata 接口的请求。 + /// + public class CgibinCheckinGetCheckinMonthDataRequest : CgibinCheckinGetCheckinDayDataRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinMonthDataResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinMonthDataResponse.cs new file mode 100644 index 00000000..259742a8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinMonthDataResponse.cs @@ -0,0 +1,197 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckin_monthdata 接口的响应。 + /// + public class CgibinCheckinGetCheckinMonthDataResponse : WechatWorkResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Base + { + public static class Types + { + public class CheckinGroup + { + /// + /// 获取或设置打卡规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public int GroupId { get; set; } + + /// + /// 获取或设置打卡规则名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string GroupName { get; set; } = default!; + } + } + + /// + /// 获取或设置记录类型。 + /// + [Newtonsoft.Json.JsonProperty("record_type")] + [System.Text.Json.Serialization.JsonPropertyName("record_type")] + public int RecordType { get; set; } + + /// + /// 获取或设置打卡人成员账号。 + /// + [Newtonsoft.Json.JsonProperty("acctid")] + [System.Text.Json.Serialization.JsonPropertyName("acctid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置打卡人姓名。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置打卡人别名。 + /// + [Newtonsoft.Json.JsonProperty("name_ex")] + [System.Text.Json.Serialization.JsonPropertyName("name_ex")] + public string Alias { get; set; } = default!; + + /// + /// 获取或设置打卡人所在部门。 + /// + [Newtonsoft.Json.JsonProperty("departs_name")] + [System.Text.Json.Serialization.JsonPropertyName("departs_name")] + public string DepartmentsName { get; set; } = default!; + + /// + /// 获取或设置打卡规则信息。 + /// + [Newtonsoft.Json.JsonProperty("rule_info")] + [System.Text.Json.Serialization.JsonPropertyName("rule_info")] + public Types.CheckinGroup CheckinGroup { get; set; } = default!; + } + + public class Summary + { + /// + /// 获取或设置异常天数。 + /// + [Newtonsoft.Json.JsonProperty("except_days")] + [System.Text.Json.Serialization.JsonPropertyName("except_days")] + public int ExceptDays { get; set; } + + /// + /// 获取或设置正常天数。 + /// + [Newtonsoft.Json.JsonProperty("regular_days")] + [System.Text.Json.Serialization.JsonPropertyName("regular_days")] + public int RegularyDays { get; set; } + + /// + /// 获取或设置应打卡天数。 + /// + [Newtonsoft.Json.JsonProperty("work_days")] + [System.Text.Json.Serialization.JsonPropertyName("work_days")] + public int StandardDays { get; set; } + + /// + /// 获取或设置实际工作时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("regular_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("regular_work_sec")] + public int RegularWorkTime { get; set; } + + /// + /// 获取或设置标准工作时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("standard_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("standard_work_sec")] + public int StandardWorkTime { get; set; } + } + + public class Vacation : CgibinCheckinGetCheckinDayDataResponse.Types.Data.Types.Vacation + { + } + + public class Exception : CgibinCheckinGetCheckinDayDataResponse.Types.Data.Types.Exception + { + } + + public class Overtime + { + /// + /// 获取或设置工作日加班时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("workday_over_sec")] + [System.Text.Json.Serialization.JsonPropertyName("workday_over_sec")] + public int OvertimeWorkdayTime { get; set; } + + /// + /// 获取或设置节假日加班时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("holidays_over_sec")] + [System.Text.Json.Serialization.JsonPropertyName("holidays_over_sec")] + public int? OvertimeHolidayTime { get; set; } + + /// + /// 获取或设置休息日加班时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("restdays_over_sec")] + [System.Text.Json.Serialization.JsonPropertyName("restdays_over_sec")] + public int? OvertimeRestdayTime { get; set; } + } + } + + /// + /// 获取或设置基础信息。 + /// + [Newtonsoft.Json.JsonProperty("base_info")] + [System.Text.Json.Serialization.JsonPropertyName("base_info")] + public Types.Base Base { get; set; } = default!; + + /// + /// 获取或设置汇总信息。 + /// + [Newtonsoft.Json.JsonProperty("summary_info")] + [System.Text.Json.Serialization.JsonPropertyName("summary_info")] + public Types.Summary Summary { get; set; } = default!; + + /// + /// 获取或设置假勤信息列表。 + /// + [Newtonsoft.Json.JsonProperty("sp_items")] + [System.Text.Json.Serialization.JsonPropertyName("sp_items")] + public Types.Vacation[]? VacationList { get; set; } + + /// + /// 获取或设置异常信息列表。 + /// + [Newtonsoft.Json.JsonProperty("exception_infos")] + [System.Text.Json.Serialization.JsonPropertyName("exception_infos")] + public Types.Exception[]? ExceptionList { get; set; } + + /// + /// 获取或设置加班信息。 + /// + [Newtonsoft.Json.JsonProperty("overwork_info")] + [System.Text.Json.Serialization.JsonPropertyName("overwork_info")] + public Types.Overtime? Overtime { get; set; } + } + } + + /// + /// 获取或设置打卡月报列表。 + /// + [Newtonsoft.Json.JsonProperty("datas")] + [System.Text.Json.Serialization.JsonPropertyName("datas")] + public Types.Data[] DataList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinOptionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinOptionRequest.cs new file mode 100644 index 00000000..f35622a0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinOptionRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckinoption 接口的请求。 + /// + public class CgibinCheckinGetCheckinOptionRequest : WechatWorkRequest + { + /// + /// 获取或设置指定日期的时间戳。 + /// + [Newtonsoft.Json.JsonProperty("datetime")] + [System.Text.Json.Serialization.JsonPropertyName("datetime")] + public long DateTimestamp { get; set; } + + /// + /// 获取或设置指定成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("useridlist")] + [System.Text.Json.Serialization.JsonPropertyName("dateuseridlisttime")] + public IList UserIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinOptionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinOptionResponse.cs new file mode 100644 index 00000000..49e8e474 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinOptionResponse.cs @@ -0,0 +1,462 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckinoption 接口的响应。 + /// + public class CgibinCheckinGetCheckinOptionResponse : WechatWorkResponse + { + public static class Types + { + public class CheckinOption + { + public static class Types + { + public class CheckinGroup + { + public static class Types + { + public class CheckinDate + { + /// + /// 获取或设置工作日序号列表。 + /// + [Newtonsoft.Json.JsonProperty("workdays")] + [System.Text.Json.Serialization.JsonPropertyName("workdays")] + public int[] WorkdayList { get; set; } = default!; + + /// + /// 获取或设置工作日上下班打卡时间列表。 + /// + [Newtonsoft.Json.JsonProperty("checkintime")] + [System.Text.Json.Serialization.JsonPropertyName("checkintime")] + public CheckinTime[] CheckinTimeList { get; set; } = default!; + + /// + /// 获取或设置是否下班不需要打卡。 + /// + [Newtonsoft.Json.JsonProperty("noneed_offwork")] + [System.Text.Json.Serialization.JsonPropertyName("noneed_offwork")] + public bool IsNoNeedOffWork { get; set; } + + /// + /// 获取或设置弹性时间(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("flex_time")] + [System.Text.Json.Serialization.JsonPropertyName("flex_time")] + public int FlexTime { get; set; } + + /// + /// 获取或设置允许迟到时间(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("flex_on_duty_time")] + [System.Text.Json.Serialization.JsonPropertyName("flex_on_duty_time")] + public int FlexOnDutyTime { get; set; } + + /// + /// 获取或设置允许早退时间(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("flex_off_duty_time")] + [System.Text.Json.Serialization.JsonPropertyName("flex_off_duty_time")] + public int FlexOffDutyTime { get; set; } + + /// + /// 获取或设置提前打卡时间限制(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("limit_aheadtime")] + [System.Text.Json.Serialization.JsonPropertyName("limit_aheadtime")] + public int LimitAheadTime { get; set; } + } + + public class CheckinTime + { + /// + /// 获取或设置上班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("work_sec")] + public int OnWorkTime { get; set; } + + /// + /// 获取或设置下班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("off_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("off_work_sec")] + public int OffWorkTime { get; set; } + + /// + /// 获取或设置提醒上班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("remind_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("remind_work_sec")] + public int RemindOnWorkTime { get; set; } + + /// + /// 获取或设置提醒下班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("remind_off_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("remind_off_work_sec")] + public int RemindOffWorkTime { get; set; } + } + + public class SpecialCheckinDate + { + /// + /// 获取或设置特殊日期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("timestamp")] + [System.Text.Json.Serialization.JsonPropertyName("timestamp")] + public long Timestamp { get; set; } + + /// + /// 获取或设置特殊日期上下班打卡时间列表。 + /// + [Newtonsoft.Json.JsonProperty("checkintime")] + [System.Text.Json.Serialization.JsonPropertyName("checkintime")] + public CheckinTime[] CheckinTimeList { get; set; } = default!; + + /// + /// 获取或设置特殊日期备注。 + /// + [Newtonsoft.Json.JsonProperty("notes")] + [System.Text.Json.Serialization.JsonPropertyName("notes")] + public string Notes { get; set; } = default!; + } + + public class WiFiMac + { + /// + /// 获取或设置 Wi-Fi 打卡地点名称。 + /// + [Newtonsoft.Json.JsonProperty("wifiname")] + [System.Text.Json.Serialization.JsonPropertyName("wifiname")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置 Wi-Fi 打卡地点 MAC 地址或 BSSID。 + /// + [Newtonsoft.Json.JsonProperty("wifimac")] + [System.Text.Json.Serialization.JsonPropertyName("wifimac")] + public string Mac { get; set; } = default!; + } + + public class Location + { + /// + /// 获取或设置位置打卡地点名称。 + /// + [Newtonsoft.Json.JsonProperty("loc_title")] + [System.Text.Json.Serialization.JsonPropertyName("loc_title")] + public string Title { get; set; } = default!; + + /// + /// 获取或设置位置打卡地点详情。 + /// + [Newtonsoft.Json.JsonProperty("loc_detail")] + [System.Text.Json.Serialization.JsonPropertyName("loc_detail")] + public string Detail { get; set; } = default!; + + /// + /// 获取或设置位置打卡地点经度。 + /// + [Newtonsoft.Json.JsonProperty("lng")] + [System.Text.Json.Serialization.JsonPropertyName("lng")] + public double Longitude { get; set; } + + /// + /// 获取或设置位置打卡地点纬度。 + /// + [Newtonsoft.Json.JsonProperty("lat")] + [System.Text.Json.Serialization.JsonPropertyName("lat")] + public double Latitude { get; set; } + + /// + /// 获取或设置允许打卡范围(单位:米)。 + /// + [Newtonsoft.Json.JsonProperty("distance")] + [System.Text.Json.Serialization.JsonPropertyName("distance")] + public int Distance { get; set; } + } + + public class Schedule + { + public static class Types + { + public class TimeSection : CheckinTime + { + /// + /// 获取或设置时段 ID。 + /// + [Newtonsoft.Json.JsonProperty("time_id")] + [System.Text.Json.Serialization.JsonPropertyName("time_id")] + public int TimeSectionId { get; set; } + + /// + /// 获取或设置是否允许休息。 + /// + [Newtonsoft.Json.JsonProperty("allow_rest")] + [System.Text.Json.Serialization.JsonPropertyName("allow_rest")] + public bool AllowRest { get; set; } + + /// + /// 获取或设置休息开始时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("rest_begin_time")] + [System.Text.Json.Serialization.JsonPropertyName("rest_begin_time")] + public int RestBeginTime { get; set; } + + /// + /// 获取或设置休息结束时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("rest_end_time")] + [System.Text.Json.Serialization.JsonPropertyName("rest_end_time")] + public int RestEndTime { get; set; } + } + + public class LateRule + { + /// + /// 获取或设置是否允许超时下班。 + /// + [Newtonsoft.Json.JsonProperty("allow_offwork_after_time")] + [System.Text.Json.Serialization.JsonPropertyName("allow_offwork_after_time")] + public bool AllowOffWorkAfterTime { get; set; } + + /// + /// 获取或设置迟到规则列表。 + /// + [Newtonsoft.Json.JsonProperty("timerules")] + [System.Text.Json.Serialization.JsonPropertyName("timerules")] + public TimeRule[] TimeRuleList { get; set; } = default!; + } + + public class TimeRule + { + /// + /// 获取或设置晚走的时间距离最晚一个下班的时间(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("offwork_after_time")] + [System.Text.Json.Serialization.JsonPropertyName("offwork_after_time")] + public int OffWorkAfterTime { get; set; } + + /// + /// 获取或设置第二天第一个班次允许迟到的弹性时间(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("onwork_flex_time")] + [System.Text.Json.Serialization.JsonPropertyName("onwork_flex_time")] + public int OnWorkFlexTime { get; set; } + } + } + + /// + /// 获取或设置排班 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public int ScheduleId { get; set; } + + /// + /// 获取或设置排班名称。 + /// + [Newtonsoft.Json.JsonProperty("schedule_name")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置班次上下班时段列表。 + /// + [Newtonsoft.Json.JsonProperty("time_section")] + [System.Text.Json.Serialization.JsonPropertyName("time_section")] + public Types.TimeSection[] TimeSectionList { get; set; } = default!; + + /// + /// 获取或设置是否下班不需要打卡。 + /// + [Newtonsoft.Json.JsonProperty("noneed_offwork")] + [System.Text.Json.Serialization.JsonPropertyName("noneed_offwork")] + public bool IsNoNeedOffWork { get; set; } + + /// + /// 获取或设置提前打卡时间限制(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("limit_aheadtime")] + [System.Text.Json.Serialization.JsonPropertyName("limit_aheadtime")] + public int LimitAheadTime { get; set; } + + /// + /// 获取或设置下班延迟打卡时间限制(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("limit_offtime")] + [System.Text.Json.Serialization.JsonPropertyName("limit_offtime")] + public int LimitOffTime { get; set; } + + /// + /// 获取或设置是否允许弹性时间。 + /// + [Newtonsoft.Json.JsonProperty("allow_flex")] + [System.Text.Json.Serialization.JsonPropertyName("allow_flex")] + public bool AllowFlex { get; set; } + + /// + /// 获取或设置允许迟到时间(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("flex_on_duty_time")] + [System.Text.Json.Serialization.JsonPropertyName("flex_on_duty_time")] + public int FlexOnDutyTime { get; set; } + + /// + /// 获取或设置允许早退时间(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("flex_off_duty_time")] + [System.Text.Json.Serialization.JsonPropertyName("flex_off_duty_time")] + public int FlexOffDutyTime { get; set; } + + /// + /// 获取或设置最早可打卡时间限制(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("max_allow_arrive_early")] + [System.Text.Json.Serialization.JsonPropertyName("max_allow_arrive_early")] + public int MaxAllowArriveEarly { get; set; } + + /// + /// 获取或设置最晚可打卡时间限制(单位:毫秒)。 + /// + [Newtonsoft.Json.JsonProperty("max_allow_arrive_late")] + [System.Text.Json.Serialization.JsonPropertyName("max_allow_arrive_late")] + public int MaxAllowArriveLate { get; set; } + + /// + /// 获取或设置晚走晚到时间规则信息。 + /// + [Newtonsoft.Json.JsonProperty("late_rule")] + [System.Text.Json.Serialization.JsonPropertyName("late_rule")] + public Types.LateRule? LateRule { get; set; } + } + } + + /// + /// 获取或设置打卡规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public int GroupId { get; set; } + + /// + /// 获取或设置打卡规则类型。 + /// + [Newtonsoft.Json.JsonProperty("grouptype")] + [System.Text.Json.Serialization.JsonPropertyName("grouptype")] + public int GroupType { get; set; } + + /// + /// 获取或设置打卡规则名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置是否同步法定节假日。 + /// + [Newtonsoft.Json.JsonProperty("sync_holidays")] + [System.Text.Json.Serialization.JsonPropertyName("sync_holidays")] + public bool IsSyncHolidays { get; set; } + + /// + /// 获取或设置是否打卡必须拍照。 + /// + [Newtonsoft.Json.JsonProperty("need_photo")] + [System.Text.Json.Serialization.JsonPropertyName("need_photo")] + public bool RequirePhoto { get; set; } + + /// + /// 获取或设置是否备注时允许上传本地图片。 + /// + [Newtonsoft.Json.JsonProperty("note_can_use_local_pic")] + [System.Text.Json.Serialization.JsonPropertyName("note_can_use_local_pic")] + public bool AllowNotesUseLocalPicture { get; set; } + + /// + /// 获取或设置是否非工作日允许打卡。 + /// + [Newtonsoft.Json.JsonProperty("allow_checkin_offworkday")] + [System.Text.Json.Serialization.JsonPropertyName("allow_checkin_offworkday")] + public bool AllowCheckinNonWorkday { get; set; } + + /// + /// 获取或设置是否允许提交补卡申请。 + /// + [Newtonsoft.Json.JsonProperty("allow_apply_offworkday")] + [System.Text.Json.Serialization.JsonPropertyName("allow_apply_offworkday")] + public bool AllowApplyOffWorkday { get; set; } + + /// + /// 获取或设置打卡时间配置列表。 + /// + [Newtonsoft.Json.JsonProperty("checkindate")] + [System.Text.Json.Serialization.JsonPropertyName("checkindate")] + public Types.CheckinDate[] CheckinDateList { get; set; } = default!; + + /// + /// 获取或设置特殊日期必须打卡日期列表。 + /// + [Newtonsoft.Json.JsonProperty("spe_workdays")] + [System.Text.Json.Serialization.JsonPropertyName("spe_workdays")] + public Types.SpecialCheckinDate[]? SpecialCheckinDateList { get; set; } + + /// + /// 获取或设置特殊日期不用打卡日期列表。 + /// + [Newtonsoft.Json.JsonProperty("spe_offdays")] + [System.Text.Json.Serialization.JsonPropertyName("spe_offdays")] + public Types.SpecialCheckinDate[]? SpecialNonCheckinDateList { get; set; } + + /// + /// 获取或设置 Wi-Fi 打卡地点列表。 + /// + [Newtonsoft.Json.JsonProperty("wifimac_infos")] + [System.Text.Json.Serialization.JsonPropertyName("wifimac_infos")] + public Types.WiFiMac[]? WiFiMacList { get; set; } + + /// + /// 获取或设置位置打卡地点列表。 + /// + [Newtonsoft.Json.JsonProperty("loc_infos")] + [System.Text.Json.Serialization.JsonPropertyName("loc_infos")] + public Types.Location[]? LocationList { get; set; } + + /// + /// 获取或设置排班列表。 + /// + [Newtonsoft.Json.JsonProperty("schedulelist")] + [System.Text.Json.Serialization.JsonPropertyName("schedulelist")] + public Types.Schedule[]? ScheduleList { get; set; } + } + } + + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置打卡规则信息。 + /// + [Newtonsoft.Json.JsonProperty("group")] + [System.Text.Json.Serialization.JsonPropertyName("group")] + public Types.CheckinGroup CheckinGroup { get; set; } = default!; + } + } + + /// + /// 获取或设置打卡规则列表。 + /// + [Newtonsoft.Json.JsonProperty("info")] + [System.Text.Json.Serialization.JsonPropertyName("info")] + public Types.CheckinOption[] CheckinOptionList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinScheduleListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinScheduleListRequest.cs new file mode 100644 index 00000000..e1256d75 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinScheduleListRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckinschedulist 接口的请求。 + /// + public class CgibinCheckinGetCheckinScheduleListRequest : CgibinCheckinGetCheckinDayDataRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinScheduleListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinScheduleListResponse.cs new file mode 100644 index 00000000..177e2bd9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCheckinScheduleListResponse.cs @@ -0,0 +1,157 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcheckinschedulist 接口的响应。 + /// + public class CgibinCheckinGetCheckinScheduleListResponse : WechatWorkResponse + { + public static class Types + { + public class Schedule + { + public static class Types + { + public class ScheduleList + { + /// + /// 获取或设置个人排班列表。 + /// + [Newtonsoft.Json.JsonProperty("scheduleList")] + [System.Text.Json.Serialization.JsonPropertyName("scheduleList")] + public ScheduleItem[] Items { get; set; } = default!; + } + + public class ScheduleItem + { + public static class Types + { + public class Schedule + { + public static class Types + { + public class TimeSection + { + /// + /// 获取或设置时段 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int TimeSectionId { get; set; } + + /// + /// 获取或设置上班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("work_sec")] + public int OnWorkTime { get; set; } + + /// + /// 获取或设置下班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("off_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("off_work_sec")] + public int OffWorkTime { get; set; } + + /// + /// 获取或设置提醒上班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("remind_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("remind_work_sec")] + public int RemindOnWorkTime { get; set; } + + /// + /// 获取或设置提醒下班时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("remind_off_work_sec")] + [System.Text.Json.Serialization.JsonPropertyName("remind_off_work_sec")] + public int RemindOffWorkTime { get; set; } + } + } + + /// + /// 获取或设置排班 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public int ScheduleId { get; set; } + + /// + /// 获取或设置排班名称。 + /// + [Newtonsoft.Json.JsonProperty("schedule_name")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_name")] + public string ScheduleName { get; set; } = default!; + + /// + /// 获取或设置时段列表。 + /// + [Newtonsoft.Json.JsonProperty("time_section")] + [System.Text.Json.Serialization.JsonPropertyName("time_section")] + public Types.TimeSection[] TimeSectionList { get; set; } = default!; + } + } + + /// + /// 获取或设置排班日期(格式:d)。 + /// + [Newtonsoft.Json.JsonProperty("day")] + [System.Text.Json.Serialization.JsonPropertyName("day")] + public int Day { get; set; } + + /// + /// 获取或设置排班信息。 + /// + [Newtonsoft.Json.JsonProperty("schedule_info")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_info")] + public Types.Schedule Schedule { get; set; } = default!; + } + } + + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置排班年月(格式:yyyyMM)。 + /// + [Newtonsoft.Json.JsonProperty("yearmonth")] + [System.Text.Json.Serialization.JsonPropertyName("yearmonth")] + public int YearAndMonth { get; set; } + + /// + /// 获取或设置打卡规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public int GroupId { get; set; } + + /// + /// 获取或设置打卡规则名称。 + /// + [Newtonsoft.Json.JsonProperty("groupname")] + [System.Text.Json.Serialization.JsonPropertyName("groupname")] + public string GroupName { get; set; } = default!; + + /// + /// 获取或设置个人排班信息。 + /// + [Newtonsoft.Json.JsonProperty("schedule")] + [System.Text.Json.Serialization.JsonPropertyName("schedule")] + public Types.ScheduleList ScheduleList { get; set; } = default!; + } + } + + /// + /// 获取或设置排班列表。 + /// + [Newtonsoft.Json.JsonProperty("schedule_list")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_list")] + public Types.Schedule[] ScheduleList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCorpCheckinOptionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCorpCheckinOptionRequest.cs new file mode 100644 index 00000000..a99fedb6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCorpCheckinOptionRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcorpcheckinoption 接口的请求。 + /// + public class CgibinCheckinGetCorpCheckinOptionRequest : WechatWorkRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCorpCheckinOptionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCorpCheckinOptionResponse.cs new file mode 100644 index 00000000..68207462 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinGetCorpCheckinOptionResponse.cs @@ -0,0 +1,395 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/getcorpcheckinoption 接口的响应。 + /// + public class CgibinCheckinGetCorpCheckinOptionResponse : WechatWorkResponse + { + public static class Types + { + public class CheckinGroup : CgibinCheckinGetCheckinOptionResponse.Types.CheckinOption.Types.CheckinGroup + { + public new static class Types + { + public class Range + { + /// + /// 获取或设置成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string[]? UserIdList { get; set; } + + /// + /// 获取或设置部门 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("partyid")] + [System.Text.Json.Serialization.JsonPropertyName("partyid")] + public int[]? DepartmentIdList { get; set; } + + /// + /// 获取或设置标签 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tagid")] + [System.Text.Json.Serialization.JsonPropertyName("tagid")] + public int[]? TagIdList { get; set; } + } + + public class Reporter + { + public static class Types + { + public class ReportUser + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + } + } + + /// + /// 获取或设置汇报人列表。 + /// + [Newtonsoft.Json.JsonProperty("reporters")] + [System.Text.Json.Serialization.JsonPropertyName("reporters")] + public Types.ReportUser[]? ReportUserList { get; set; } + + /// + /// 获取或设置更新时间戳。 + /// + [Newtonsoft.Json.JsonProperty("updatetime")] + [System.Text.Json.Serialization.JsonPropertyName("updatetime")] + public long? UpdateTimestamp { get; set; } + } + + public class Overtime + { + public static class Types + { + public class OvertimeCheckin + { + /// + /// 获取或设置工作日加班开始时间距最晚下班时间的秒数。 + /// + [Newtonsoft.Json.JsonProperty("ot_workingday_time_start")] + [System.Text.Json.Serialization.JsonPropertyName("ot_workingday_time_start")] + public int OvertimeWorkdayTimeStart { get; set; } + + /// + /// 获取或设置工作日最短加班时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("ot_workingday_time_min")] + [System.Text.Json.Serialization.JsonPropertyName("ot_workingday_time_min")] + public int OvertimeWorkdayTimeMin { get; set; } + + /// + /// 获取或设置工作日最长加班时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("ot_workingday_time_max")] + [System.Text.Json.Serialization.JsonPropertyName("ot_workingday_time_max")] + public int OvertimeWorkdayTimeMax { get; set; } + + /// + /// 获取或设置工作日休息时间配置信息。 + /// + [Newtonsoft.Json.JsonProperty("ot_workingday_restinfo")] + [System.Text.Json.Serialization.JsonPropertyName("ot_workingday_restinfo")] + public OvertimeRest? OvertimeWorkdayRest { get; set; } + + /// + /// 获取或设置非工作日最短加班时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("ot_nonworkingday_time_min")] + [System.Text.Json.Serialization.JsonPropertyName("ot_nonworkingday_time_min")] + public int OvertimeNonWorkdayTimeMin { get; set; } + + /// + /// 获取或设置非工作日最长加班时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("ot_nonworkingday_time_max")] + [System.Text.Json.Serialization.JsonPropertyName("ot_nonworkingday_time_max")] + public int OvertimeNonWorkdayTimeMax { get; set; } + + /// + /// 获取或设置非工作日加班,跨天时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("ot_nonworkingday_spanday_time")] + [System.Text.Json.Serialization.JsonPropertyName("ot_nonworkingday_spanday_time")] + public int OvertimeNonWorkdaySpanDayTime { get; set; } + + /// + /// 获取或设置非工作日休息时间配置信息。 + /// + [Newtonsoft.Json.JsonProperty("ot_nonworkingday_restinfo")] + [System.Text.Json.Serialization.JsonPropertyName("ot_nonworkingday_restinfo")] + public OvertimeRest? OvertimeNonWorkdayRest { get; set; } + } + + public class OvertimeRest + { + public static class Types + { + public class FixedTimeRule + { + /// + /// 获取或设置休息时间的开始时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("fix_time_begin_sec")] + [System.Text.Json.Serialization.JsonPropertyName("fix_time_begin_sec")] + public int FixedTimeBeginTime { get; set; } + + /// + /// 获取或设置休息时间的结束时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("fix_time_end_sec")] + [System.Text.Json.Serialization.JsonPropertyName("fix_time_end_sec")] + public int FixedTimeEndTime { get; set; } + } + + public class CalendarTimeRuleList + { + /// + /// 获取或设置按加班时长扣除配置列表。 + /// + [Newtonsoft.Json.JsonProperty("items")] + [System.Text.Json.Serialization.JsonPropertyName("items")] + public CalendarTimeRuleItem[] Items { get; set; } = default!; + } + + public class CalendarTimeRuleItem + { + /// + /// 获取或设置加班单位时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("ot_time")] + [System.Text.Json.Serialization.JsonPropertyName("ot_time")] + public int OvertimeTime { get; set; } + + /// + /// 获取或设置对应扣除时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("rest_time")] + [System.Text.Json.Serialization.JsonPropertyName("rest_time")] + public int RestTime { get; set; } + } + } + + /// + /// 获取或设置休息扣除类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置休息时间配置信息。 + /// + [Newtonsoft.Json.JsonProperty("fix_time_rule")] + [System.Text.Json.Serialization.JsonPropertyName("fix_time_rule")] + public Types.FixedTimeRule? FixedTimeRule { get; set; } + + /// + /// 获取或设置按加班时长扣除配置列表。 + /// + [Newtonsoft.Json.JsonProperty("cal_ottime_rule")] + [System.Text.Json.Serialization.JsonPropertyName("cal_ottime_rule")] + public Types.CalendarTimeRuleList? CalendarTimeRuleList { get; set; } + } + + public class OvertimeApply + { + /// + /// 获取或设置允许工作日加班。 + /// + [Newtonsoft.Json.JsonProperty("allow_ot_workingday")] + [System.Text.Json.Serialization.JsonPropertyName("allow_ot_workingday")] + public bool AllowOvertimeWorkday { get; set; } + + /// + /// 获取或设置允许非工作日加班。 + /// + [Newtonsoft.Json.JsonProperty("allow_ot_nonworkingday")] + [System.Text.Json.Serialization.JsonPropertyName("allow_ot_nonworkingday")] + public bool AllowOvertimeNonWorkday { get; set; } + + /// + /// 获取或设置工作日休息时间配置信息。 + /// + [Newtonsoft.Json.JsonProperty("ot_workingday_restinfo")] + [System.Text.Json.Serialization.JsonPropertyName("ot_workingday_restinfo")] + public OvertimeRest? OvertimeWorkdayRest { get; set; } + + /// + /// 获取或设置非工作日加班,跨天时间距当天零点的秒数。 + /// + [Newtonsoft.Json.JsonProperty("ot_nonworkingday_spanday_time")] + [System.Text.Json.Serialization.JsonPropertyName("ot_nonworkingday_spanday_time")] + public int OvertimeNonWorkdaySpanDayTime { get; set; } + + /// + /// 获取或设置非工作日休息时间配置信息。 + /// + [Newtonsoft.Json.JsonProperty("ot_nonworkingday_restinfo")] + [System.Text.Json.Serialization.JsonPropertyName("ot_nonworkingday_restinfo")] + public OvertimeRest? OvertimeNonWorkdayRest { get; set; } + + /// + /// 获取或设置更新时间戳。 + /// + [Newtonsoft.Json.JsonProperty("uptime")] + [System.Text.Json.Serialization.JsonPropertyName("uptime")] + public long UpdateTimestamp { get; set; } + } + } + + /// + /// 获取或设置加班类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置允许工作日加班。 + /// + [Newtonsoft.Json.JsonProperty("allow_ot_workingday")] + [System.Text.Json.Serialization.JsonPropertyName("allow_ot_workingday")] + public bool AllowOvertimeWorkday { get; set; } + + /// + /// 获取或设置允许非工作日加班。 + /// + [Newtonsoft.Json.JsonProperty("allow_ot_nonworkingday")] + [System.Text.Json.Serialization.JsonPropertyName("allow_ot_nonworkingday")] + public bool AllowOvertimeNonWorkday { get; set; } + + /// + /// 获取或设置加班时长计算规则信息。 + /// + [Newtonsoft.Json.JsonProperty("otcheckinfo")] + [System.Text.Json.Serialization.JsonPropertyName("otcheckinfo")] + public Types.OvertimeCheckin? OvertimeCheckin { get; set; } + + /// + /// 获取或设置加班申请信息。 + /// + [Newtonsoft.Json.JsonProperty("otapplyinfo")] + [System.Text.Json.Serialization.JsonPropertyName("otapplyinfo")] + public Types.OvertimeApply? OvertimeApply { get; set; } + + /// + /// 获取或设置更新时间戳。 + /// + [Newtonsoft.Json.JsonProperty("uptime")] + [System.Text.Json.Serialization.JsonPropertyName("uptime")] + public long UpdateTimestamp { get; set; } + } + } + + /// + /// 获取或设置打卡方式。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置打卡人员信息。 + /// + [Newtonsoft.Json.JsonProperty("range")] + [System.Text.Json.Serialization.JsonPropertyName("range")] + public Types.Range Range { get; set; } = default!; + + /// + /// 获取或设置打卡人员白名单。 + /// + [Newtonsoft.Json.JsonProperty("white_users")] + [System.Text.Json.Serialization.JsonPropertyName("white_users")] + public string[] UserIdWhiteList { get; set; } = default!; + + /// + /// 获取或设置汇报对象信息。 + /// + [Newtonsoft.Json.JsonProperty("reporterinfo")] + [System.Text.Json.Serialization.JsonPropertyName("reporterinfo")] + public Types.Reporter? Reporter { get; set; } + + /// + /// 获取或设置加班信息。 + /// + [Newtonsoft.Json.JsonProperty("ot_info")] + [System.Text.Json.Serialization.JsonPropertyName("ot_info")] + public Types.Overtime? Overtime { get; set; } + + /// + /// 获取或设置每月最多补卡次数。 + /// + [Newtonsoft.Json.JsonProperty("allow_apply_bk_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("allow_apply_bk_cnt")] + public int LimitApplyCount { get; set; } + + /// + /// 获取或设置补卡时限(单位:天)。 + /// + [Newtonsoft.Json.JsonProperty("allow_apply_bk_day_limit")] + [System.Text.Json.Serialization.JsonPropertyName("allow_apply_bk_day_limit")] + public int LimitApplyDay { get; set; } + + /// + /// 获取或设置范围外打卡处理方式。 + /// + [Newtonsoft.Json.JsonProperty("option_out_range")] + [System.Text.Json.Serialization.JsonPropertyName("option_out_range")] + public int OutRangeOption { get; set; } + + /// + /// 获取或设置是否开启人脸识别。 + /// + [Newtonsoft.Json.JsonProperty("use_face_detect")] + [System.Text.Json.Serialization.JsonPropertyName("use_face_detect")] + public bool UseFaceDetect { get; set; } + + /// + /// 获取或设置自由签到时间(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("offwork_interval_time")] + [System.Text.Json.Serialization.JsonPropertyName("offwork_interval_time")] + public int OffWorkIntervalTime { get; set; } + + /// + /// 获取或设置创建人成员账号。 + /// + [Newtonsoft.Json.JsonProperty("create_userid")] + [System.Text.Json.Serialization.JsonPropertyName("create_userid")] + public string CreatorUserId { get; set; } = default!; + + /// + /// 获取或设置最近编辑人成员账号。 + /// + [Newtonsoft.Json.JsonProperty("update_userid")] + [System.Text.Json.Serialization.JsonPropertyName("update_userid")] + public string UpdaterUserId { get; set; } = default!; + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置打卡规则列表。 + /// + [Newtonsoft.Json.JsonProperty("group")] + [System.Text.Json.Serialization.JsonPropertyName("group")] + public Types.CheckinGroup[] CheckinGroupList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinSetCheckinScheduleListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinSetCheckinScheduleListRequest.cs new file mode 100644 index 00000000..b16417b9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinSetCheckinScheduleListRequest.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/setcheckinschedulist 接口的请求。 + /// + public class CgibinCheckinSetCheckinScheduleListRequest : WechatWorkRequest + { + public static class Types + { + public class Schedule + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置排班日期(格式:d)。 + /// + [Newtonsoft.Json.JsonProperty("day")] + [System.Text.Json.Serialization.JsonPropertyName("day")] + public int Day { get; set; } + + /// + /// 获取或设置排班 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public int ScheduleId { get; set; } + } + } + + /// + /// 获取或设置打卡规则 ID。 + /// + [Newtonsoft.Json.JsonProperty("groupid")] + [System.Text.Json.Serialization.JsonPropertyName("groupid")] + public int GroupId { get; set; } + + /// + /// 获取或设置排班年月(格式:yyyyMM)。 + /// + [Newtonsoft.Json.JsonProperty("yearmonth")] + [System.Text.Json.Serialization.JsonPropertyName("yearmonth")] + public int YearAndMonth { get; set; } + + /// + /// 获取或设置排版列表。 + /// + [Newtonsoft.Json.JsonProperty("items")] + [System.Text.Json.Serialization.JsonPropertyName("items")] + public IList ScheduleList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinSetCheckinScheduleListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinSetCheckinScheduleListResponse.cs new file mode 100644 index 00000000..7dd96e0c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinCheckin/CgibinCheckinSetCheckinScheduleListResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/checkin/setcheckinschedulist 接口的响应。 + /// + public class CgibinCheckinSetCheckinScheduleListResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinDialog/CgibinDialogGetDialogRecordRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinDialog/CgibinDialogGetDialogRecordRequest.cs new file mode 100644 index 00000000..b6805573 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinDialog/CgibinDialogGetDialogRecordRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/gettoken 接口的请求。 + /// + public class CgibinDialogGetDialogRecordRequest : 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("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/CgibinDialog/CgibinDialogGetDialogRecordResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinDialog/CgibinDialogGetDialogRecordResponse.cs new file mode 100644 index 00000000..0673d2e4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinDialog/CgibinDialogGetDialogRecordResponse.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/gettoken 接口的响应。 + /// + public class CgibinDialogGetDialogRecordResponse : WechatWorkResponse + { + public static class Types + { + public class Record + { + public static class Types + { + public class Caller + { + /// + /// 获取或设置主叫用户的成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置主叫用户的通话时长(单位:分钟)。 + /// + [Newtonsoft.Json.JsonProperty("duration")] + [System.Text.Json.Serialization.JsonPropertyName("duration")] + public long Duration { get; set; } + } + + public class Callee + { + /// + /// 获取或设置被叫用户的成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string? UserId { get; set; } + + /// + /// 获取或设置被叫用户的号码。 + /// + [Newtonsoft.Json.JsonProperty("phone")] + [System.Text.Json.Serialization.JsonPropertyName("phone")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedStringConverter))] + public string? PhoneNumber { get; set; } + + /// + /// 获取或设置被叫用户的通话时长(单位:分钟)。 + /// + [Newtonsoft.Json.JsonProperty("duration")] + [System.Text.Json.Serialization.JsonPropertyName("duration")] + public long? Duration { get; set; } + } + } + + /// + /// 获取或设置通话类型。 + /// + [Newtonsoft.Json.JsonProperty("call_type")] + [System.Text.Json.Serialization.JsonPropertyName("call_type")] + public int CallType { get; set; } + + /// + /// 获取或设置拨出时间戳。 + /// + [Newtonsoft.Json.JsonProperty("call_time")] + [System.Text.Json.Serialization.JsonPropertyName("call_time")] + public long CallTimestamp { get; set; } + + /// + /// 获取或设置总通话时长(单位:分钟)。 + /// + [Newtonsoft.Json.JsonProperty("total_duration")] + [System.Text.Json.Serialization.JsonPropertyName("total_duration")] + public int TotalDuration { get; set; } + + /// + /// 获取或设置主叫信息。 + /// + [Newtonsoft.Json.JsonProperty("caller")] + [System.Text.Json.Serialization.JsonPropertyName("caller")] + public Types.Caller Caller { get; set; } = default!; + + /// + /// 获取或设置被叫列表。 + /// + [Newtonsoft.Json.JsonProperty("callee")] + [System.Text.Json.Serialization.JsonPropertyName("callee")] + public Types.Callee[] CalleeList { get; set; } = default!; + } + } + + /// + /// 获取或设置通话记录列表。 + /// + [Newtonsoft.Json.JsonProperty("record")] + [System.Text.Json.Serialization.JsonPropertyName("record")] + public Types.Record[] RecordList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListResponse.cs index aeb77ffd..ff1a995e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUnassignedListResponse.cs @@ -43,11 +43,11 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models public Types.DismissedUser[] DismissedUserList { get; set; } = default!; /// - /// 获取或设置是否是最后一条记录。 + /// 获取或设置翻页是否结束。 /// [Newtonsoft.Json.JsonProperty("is_last")] [System.Text.Json.Serialization.JsonPropertyName("is_last")] - public bool IsLast { get; set; } + public bool IsEnding { get; set; } /// /// 获取或设置翻页标记。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCancelRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCancelRequest.cs new file mode 100644 index 00000000..60a58809 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCancelRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/cancel 接口的请求。 + /// + public class CgibinLivingCancelRequest : WechatWorkRequest + { + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonProperty("livingid")] + [System.Text.Json.Serialization.JsonPropertyName("livingid")] + public string LivingId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCancelResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCancelResponse.cs new file mode 100644 index 00000000..1d764142 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCancelResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/cancel 接口的响应。 + /// + public class CgibinLivingCancelResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCreateRequest.cs new file mode 100644 index 00000000..cd585e6b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCreateRequest.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/create 接口的请求。 + /// + public class CgibinLivingCreateRequest : WechatWorkRequest + { + public static class Types + { + public class ActivityDetail + { + /// + /// 获取或设置活动直播简介。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置活动直播附图 MediaId 列表。 + /// + [Newtonsoft.Json.JsonProperty("image_list")] + [System.Text.Json.Serialization.JsonPropertyName("image_list")] + public IList? ImageMediaIdList { get; set; } + } + } + + /// + /// 获取或设置主播成员账号。 + /// + [Newtonsoft.Json.JsonProperty("anchor_userid")] + [System.Text.Json.Serialization.JsonPropertyName("anchor_userid")] + public string AnchorUserId { get; set; } = string.Empty; + + /// + /// 获取或设置直播标题。 + /// + [Newtonsoft.Json.JsonProperty("theme")] + [System.Text.Json.Serialization.JsonPropertyName("theme")] + public string Theme { get; set; } = string.Empty; + + /// + /// 获取或设置直播开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("living_start")] + [System.Text.Json.Serialization.JsonPropertyName("living_start")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置直播持续时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("living_duration")] + [System.Text.Json.Serialization.JsonPropertyName("living_duration")] + public int Duration { get; set; } + + /// + /// 获取或设置直播类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置直播简介。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置直播开始前多久提醒(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_time")] + [System.Text.Json.Serialization.JsonPropertyName("remind_time")] + public int? RemindBeforeEventTime { get; set; } + + /// + /// 获取或设置直播间封面 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("activity_cover_mediaid")] + [System.Text.Json.Serialization.JsonPropertyName("activity_cover_mediaid")] + public string? ActivityCoverMediaId { get; set; } + + /// + /// 获取或设置直播间分享图片 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("activity_share_mediaid")] + [System.Text.Json.Serialization.JsonPropertyName("activity_share_mediaid")] + public string? ActivitySharePictureMediaId { get; set; } + + /// + /// 获取或设置活动直播详情信息。 + /// + [Newtonsoft.Json.JsonProperty("activity_detail")] + [System.Text.Json.Serialization.JsonPropertyName("activity_detail")] + public Types.ActivityDetail? ActivityDetail { 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/CgibinLiving/CgibinLivingCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCreateResponse.cs new file mode 100644 index 00000000..9c30a347 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingCreateResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/create 接口的响应。 + /// + public class CgibinLivingCreateResponse : WechatWorkResponse + { + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonProperty("livingid")] + [System.Text.Json.Serialization.JsonPropertyName("livingid")] + public string LivingId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingDeleteReplayDataRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingDeleteReplayDataRequest.cs new file mode 100644 index 00000000..a5405d41 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingDeleteReplayDataRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/delete_replay_data 接口的请求。 + /// + public class CgibinLivingDeleteReplayDataRequest : WechatWorkRequest + { + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonProperty("livingid")] + [System.Text.Json.Serialization.JsonPropertyName("livingid")] + public string LivingId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingDeleteReplayDataResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingDeleteReplayDataResponse.cs new file mode 100644 index 00000000..ff03dcc5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingDeleteReplayDataResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/delete_replay_data 接口的响应。 + /// + public class CgibinLivingDeleteReplayDataResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingCodeRequest.cs new file mode 100644 index 00000000..68a3ae13 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingCodeRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/get_living_code 接口的请求。 + /// + public class CgibinLivingGetLivingCodeRequest : WechatWorkRequest + { + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonProperty("livingid")] + [System.Text.Json.Serialization.JsonPropertyName("livingid")] + public string LivingId { get; set; } = string.Empty; + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingCodeResponse.cs new file mode 100644 index 00000000..02f4d07c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingCodeResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/get_living_code 接口的响应。 + /// + public class CgibinLivingGetLivingCodeResponse : WechatWorkResponse + { + /// + /// 获取或设置微信观看直播凭证。 + /// + [Newtonsoft.Json.JsonProperty("living_code")] + [System.Text.Json.Serialization.JsonPropertyName("living_code")] + public string LivingCode { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoRequest.cs new file mode 100644 index 00000000..c616b954 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/meeting/get_living_info 接口的请求。 + /// + public class CgibinLivingGetLivingInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string LivingId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoResponse.cs new file mode 100644 index 00000000..f3376a53 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoResponse.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [GET] /cgi-bin/meeting/get_living_info 接口的响应。 + /// + public class CgibinLivingGetLivingInfoResponse : WechatWorkResponse + { + public static class Types + { + public class Living + { + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonProperty("livingid")] + [System.Text.Json.Serialization.JsonPropertyName("livingid")] + public string LivingId { get; set; } = default!; + + /// + /// 获取或设置主播成员账号。 + /// + [Newtonsoft.Json.JsonProperty("anchor_userid")] + [System.Text.Json.Serialization.JsonPropertyName("anchor_userid")] + public string AnchorUserId { get; set; } = default!; + + /// + /// 获取或设置主播所在主部门 ID。 + /// + [Newtonsoft.Json.JsonProperty("main_department")] + [System.Text.Json.Serialization.JsonPropertyName("main_department")] + public int? AnchorMainDepartmentId { get; set; } + + /// + /// 获取或设置直播标题。 + /// + [Newtonsoft.Json.JsonProperty("theme")] + [System.Text.Json.Serialization.JsonPropertyName("theme")] + public string Theme { get; set; } = default!; + + /// + /// 获取或设置直播开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("living_start")] + [System.Text.Json.Serialization.JsonPropertyName("living_start")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置直播持续时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("living_duration")] + [System.Text.Json.Serialization.JsonPropertyName("living_duration")] + public int Duration { get; set; } + + /// + /// 获取或设置预约直播开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("reserve_start")] + [System.Text.Json.Serialization.JsonPropertyName("reserve_start")] + public long ReserveStartTimestamp { get; set; } + + /// + /// 获取或设置预约直播持续时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("reserve_living_duration")] + [System.Text.Json.Serialization.JsonPropertyName("reserve_living_duration")] + public int ReserveDuration { get; set; } + + /// + /// 获取或设置直播类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置直播状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置直播简介。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置是否开启回放。 + /// + [Newtonsoft.Json.JsonProperty("open_replay")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("open_replay")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsOpenReplay { get; set; } + + /// + /// 获取或设置回放状态。 + /// + [Newtonsoft.Json.JsonProperty("replay_status")] + [System.Text.Json.Serialization.JsonPropertyName("replay_status")] + public int? ReplayStatus { get; set; } + + /// + /// 获取或设置预约人数。 + /// + [Newtonsoft.Json.JsonProperty("subscribe_count")] + [System.Text.Json.Serialization.JsonPropertyName("subscribe_count")] + public int SubscribeCount { get; set; } + + /// + /// 获取或设置观众总人数。 + /// + [Newtonsoft.Json.JsonProperty("viewer_num")] + [System.Text.Json.Serialization.JsonPropertyName("viewer_num")] + public int ViewerCount { get; set; } + + /// + /// 获取或设置当前在线观看人数。 + /// + [Newtonsoft.Json.JsonProperty("online_count")] + [System.Text.Json.Serialization.JsonPropertyName("online_count")] + public int OnlineViewerCount { get; set; } + + /// + /// 获取或设置评论数。 + /// + [Newtonsoft.Json.JsonProperty("comment_num")] + [System.Text.Json.Serialization.JsonPropertyName("comment_num")] + public int CommentCount { get; set; } + + /// + /// 获取或设置连麦人数。 + /// + [Newtonsoft.Json.JsonProperty("mic_num")] + [System.Text.Json.Serialization.JsonPropertyName("mic_num")] + public int MicCount { get; set; } + + /// + /// 获取或设置推流地址 URL。 + /// + [Newtonsoft.Json.JsonProperty("push_stream_url")] + [System.Text.Json.Serialization.JsonPropertyName("push_stream_url")] + public string? PushStreamUrl { get; set; } + } + } + + /// + /// 获取或设置直播信息。 + /// + [Newtonsoft.Json.JsonProperty("living_info")] + [System.Text.Json.Serialization.JsonPropertyName("living_info")] + public Types.Living Living { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoRequest.cs new file mode 100644 index 00000000..f57d7a82 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/get_living_share_info 接口的请求。 + /// + public class CgibinLivingGetLivingShareInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置“推广产品”直播观众跳转小程序商城时的 `ww_share_code` 参数。 + /// + [Newtonsoft.Json.JsonProperty("ww_share_code")] + [System.Text.Json.Serialization.JsonPropertyName("ww_share_code")] + public string ShareCode { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoResponse.cs new file mode 100644 index 00000000..7f481b4d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoResponse.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/get_living_share_info 接口的响应。 + /// + public class CgibinLivingGetLivingShareInfoResponse : WechatWorkResponse + { + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonProperty("livingid")] + [System.Text.Json.Serialization.JsonPropertyName("livingid")] + public string LivingId { get; set; } = default!; + + /// + /// 获取或设置观众的成员账号。 + /// + [Newtonsoft.Json.JsonProperty("viewer_userid")] + [System.Text.Json.Serialization.JsonPropertyName("viewer_userid")] + public string? ViewerUserId { get; set; } + + /// + /// 获取或设置观众的外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("viewer_external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("viewer_external_userid")] + public string? ViewerExternalUserId { get; set; } + + /// + /// 获取或设置邀请人的成员账号。 + /// + [Newtonsoft.Json.JsonProperty("invitor_userid")] + [System.Text.Json.Serialization.JsonPropertyName("invitor_userid")] + public string? InvitorUserId { get; set; } + + /// + /// 获取或设置邀请人的外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("invitor_external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("invitor_external_userid")] + public string? InvitorExternalUserId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetUserAllLivingIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetUserAllLivingIdRequest.cs new file mode 100644 index 00000000..93acd982 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetUserAllLivingIdRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/get_user_all_livingid 接口的请求。 + /// + public class CgibinLivingGetUserAllLivingIdRequest : 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/CgibinLiving/CgibinLivingGetUserAllLivingIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetUserAllLivingIdResponse.cs new file mode 100644 index 00000000..cf4f9006 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetUserAllLivingIdResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/get_user_all_livingid 接口的响应。 + /// + public class CgibinLivingGetUserAllLivingIdResponse : WechatWorkResponse + { + /// + /// 获取或设置直播 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("livingid_list")] + [System.Text.Json.Serialization.JsonPropertyName("livingid_list")] + public string[] LivingIdList { 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/CgibinLiving/CgibinLivingGetWatchStatRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatRequest.cs new file mode 100644 index 00000000..be49af50 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/get_watch_stat 接口的请求。 + /// + public class CgibinLivingGetWatchStatRequest : WechatWorkRequest + { + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonProperty("livingid")] + [System.Text.Json.Serialization.JsonPropertyName("livingid")] + public string LivingId { get; set; } = string.Empty; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_key")] + [System.Text.Json.Serialization.JsonPropertyName("next_key")] + public string? NextKey { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatResponse.cs new file mode 100644 index 00000000..866dacf1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatResponse.cs @@ -0,0 +1,141 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/get_watch_stat 接口的响应。 + /// + public class CgibinLivingGetWatchStatResponse : WechatWorkResponse + { + public static class Types + { + public class Statistics + { + public static class Types + { + public class User + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置观看时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("watch_time")] + [System.Text.Json.Serialization.JsonPropertyName("watch_time")] + public int WatchTime { get; set; } + + /// + /// 获取或设置是否评论。 + /// + [Newtonsoft.Json.JsonProperty("is_comment")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_comment")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsComment { get; set; } + + /// + /// 获取或设置是否连麦。 + /// + [Newtonsoft.Json.JsonProperty("is_mic")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_mic")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsMic { get; set; } + } + + public class ExternalUser + { + /// + /// 获取或设置外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = default!; + + /// + /// 获取或设置外部成员类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置外部成员名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// 获取或设置观看时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("watch_time")] + [System.Text.Json.Serialization.JsonPropertyName("watch_time")] + public int WatchTime { get; set; } + + /// + /// 获取或设置是否评论。 + /// + [Newtonsoft.Json.JsonProperty("is_comment")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_comment")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsComment { get; set; } + + /// + /// 获取或设置是否连麦。 + /// + [Newtonsoft.Json.JsonProperty("is_mic")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_mic")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsMic { get; set; } + } + } + + /// + /// 获取或设置成员列表。 + /// + [Newtonsoft.Json.JsonProperty("users")] + [System.Text.Json.Serialization.JsonPropertyName("users")] + public Types.User[] UserList { get; set; } = default!; + + /// + /// 获取或设置外部联系人列表。 + /// + [Newtonsoft.Json.JsonProperty("external_users")] + [System.Text.Json.Serialization.JsonPropertyName("external_users")] + public Types.ExternalUser[] ExternalUserList { get; set; } = default!; + } + } + + /// + /// 获取或设置统计信息。 + /// + [Newtonsoft.Json.JsonProperty("stat_info")] + [System.Text.Json.Serialization.JsonPropertyName("stat_info")] + public Types.Statistics Statistics { get; set; } = default!; + + /// + /// 获取或设置翻页是否结束。 + /// + [Newtonsoft.Json.JsonProperty("ending")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("ending")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsEnding { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_key")] + [System.Text.Json.Serialization.JsonPropertyName("next_key")] + public string? NextKey { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyRequest.cs new file mode 100644 index 00000000..1c6f9753 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyRequest.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/modify 接口的请求。 + /// + public class CgibinLivingModifyRequest : WechatWorkRequest + { + public static class Types + { + public class Attendee : CgibinMeetingCreateRequest.Types.Attendee + { + } + } + + /// + /// 获取或设置直播 ID。 + /// + [Newtonsoft.Json.JsonProperty("livingid")] + [System.Text.Json.Serialization.JsonPropertyName("livingid")] + public string LivingId { get; set; } = string.Empty; + + /// + /// 获取或设置会议标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string? Title { get; set; } + + /// + /// 获取或设置直播标题。 + /// + [Newtonsoft.Json.JsonProperty("theme")] + [System.Text.Json.Serialization.JsonPropertyName("theme")] + public string? Theme { get; set; } + + /// + /// 获取或设置直播开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("living_start")] + [System.Text.Json.Serialization.JsonPropertyName("living_start")] + public long? StartTimestamp { get; set; } + + /// + /// 获取或设置直播持续时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("living_duration")] + [System.Text.Json.Serialization.JsonPropertyName("living_duration")] + public int? Duration { get; set; } + + /// + /// 获取或设置直播类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int? Type { get; set; } + + /// + /// 获取或设置直播简介。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置直播开始前多久提醒(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_time")] + [System.Text.Json.Serialization.JsonPropertyName("remind_time")] + public int? RemindBeforeEventTime { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyResponse.cs new file mode 100644 index 00000000..0297d6d3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/living/modify 接口的响应。 + /// + public class CgibinLivingModifyResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs new file mode 100644 index 00000000..143cf5d2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/cancel 接口的请求。 + /// + public class CgibinMeetingCancelRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelResponse.cs new file mode 100644 index 00000000..c43ee908 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/cancel 接口的响应。 + /// + public class CgibinMeetingCancelResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateRequest.cs new file mode 100644 index 00000000..0868f317 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateRequest.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/create 接口的请求。 + /// + public class CgibinMeetingCreateRequest : WechatWorkRequest + { + public static class Types + { + public class Attendee + { + /// + /// 获取或设置参与者成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public IList? UserIdList { get; set; } + + /// + /// 获取或设置参与者外部联系人账号列表。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public IList? ExternalUserIdList { get; set; } + + /// + /// 获取或设置设备序列号列表。 + /// + [Newtonsoft.Json.JsonProperty("device_sn")] + [System.Text.Json.Serialization.JsonPropertyName("device_sn")] + public IList? DeviceSerialNumberList { get; set; } + } + } + + /// + /// 获取或设置发起者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("creator_userid")] + [System.Text.Json.Serialization.JsonPropertyName("creator_userid")] + public string CreatorUserId { get; set; } = string.Empty; + + /// + /// 获取或设置会议标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置会议开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("meeting_start")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_start")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置会议持续时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("meeting_duration")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_duration")] + public int Duration { get; set; } + + /// + /// 获取或设置会议类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置会议描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置会议开始前多久提醒(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_time")] + [System.Text.Json.Serialization.JsonPropertyName("remind_time")] + public int? RemindBeforeEventTime { get; set; } + + /// + /// 获取或设置参与者信息。 + /// + [Newtonsoft.Json.JsonProperty("attendees")] + [System.Text.Json.Serialization.JsonPropertyName("attendees")] + public Types.Attendee? Attendee { 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/CgibinMeeting/CgibinMeetingCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateResponse.cs new file mode 100644 index 00000000..55701d5a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/create 接口的响应。 + /// + public class CgibinMeetingCreateResponse : WechatWorkResponse + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoRequest.cs new file mode 100644 index 00000000..9213d02a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/get_info 接口的请求。 + /// + public class CgibinMeetingGetInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoResponse.cs new file mode 100644 index 00000000..4c9afb01 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoResponse.cs @@ -0,0 +1,183 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/get_info 接口的响应。 + /// + public class CgibinMeetingGetInfoResponse : WechatWorkResponse + { + public static class Types + { + public class Attendee + { + public static class Types + { + public class User + { + /// + /// 获取或设置参与者成员账号。 + /// + [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; } + } + + public class ExternalUser + { + /// + /// 获取或设置参与者外部联系人账号。 + /// + [Newtonsoft.Json.JsonProperty("external_userid")] + [System.Text.Json.Serialization.JsonPropertyName("external_userid")] + public string ExternalUserId { get; set; } = default!; + + /// + /// 获取或设置参与者与会状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + + public class Device + { + /// + /// 获取或设置设备序列号。 + /// + [Newtonsoft.Json.JsonProperty("device_sn")] + [System.Text.Json.Serialization.JsonPropertyName("device_sn")] + public string DeviceSerialNumber { get; set; } = default!; + + /// + /// 获取或设置设备与会状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + + /// + /// 获取或设置参与者成员列表。 + /// + [Newtonsoft.Json.JsonProperty("member")] + [System.Text.Json.Serialization.JsonPropertyName("member")] + public Types.User[] UserList { get; set; } = default!; + + /// + /// 获取或设置参与者外部联系人列表。 + /// + [Newtonsoft.Json.JsonProperty("external_user")] + [System.Text.Json.Serialization.JsonPropertyName("external_user")] + public Types.ExternalUser[] ExternalUserList { get; set; } = default!; + + /// + /// 获取或设置设备列表。 + /// + [Newtonsoft.Json.JsonProperty("device")] + [System.Text.Json.Serialization.JsonPropertyName("device")] + public Types.Device[] DeviceList { get; set; } = default!; + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = default!; + + /// + /// 获取或设置发起者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("creator_userid")] + [System.Text.Json.Serialization.JsonPropertyName("creator_userid")] + public string CreatorUserId { get; set; } = default!; + + /// + /// 获取或设置发起者所在主部门 ID。 + /// + [Newtonsoft.Json.JsonProperty("main_department")] + [System.Text.Json.Serialization.JsonPropertyName("main_department")] + public int? CreatorMainDepartmentId { get; set; } + + /// + /// 获取或设置会议标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = default!; + + /// + /// 获取或设置会议开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("meeting_start")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_start")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置会议持续时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("meeting_duration")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_duration")] + public int Duration { get; set; } + + /// + /// 获取或设置会议预约开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("reserve_meeting_start")] + [System.Text.Json.Serialization.JsonPropertyName("meetingreserve_meeting_start_start")] + public long ReserveStartTimestamp { get; set; } + + /// + /// 获取或设置会议预约持续时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("reserve_meeting_duration")] + [System.Text.Json.Serialization.JsonPropertyName("reserve_meeting_duration")] + public int ReserveDuration { get; set; } + + /// + /// 获取或设置会议类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置会议状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置会议描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置会议开始前多久提醒(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_time")] + [System.Text.Json.Serialization.JsonPropertyName("remind_time")] + public int RemindBeforeEventTime { get; set; } + + /// + /// 获取或设置参与者信息。 + /// + [Newtonsoft.Json.JsonProperty("attendees")] + [System.Text.Json.Serialization.JsonPropertyName("attendees")] + public Types.Attendee Attendee { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetUserMeetingIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetUserMeetingIdRequest.cs new file mode 100644 index 00000000..df0fea98 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetUserMeetingIdRequest.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/get_user_meetingid 接口的请求。 + /// + public class CgibinMeetingGetUserMeetingIdRequest : WechatWorkRequest + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置指定开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("begin_time")] + [System.Text.Json.Serialization.JsonPropertyName("begin_time")] + public long? BeginTimestamp { get; set; } + + /// + /// 获取或设置指定结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long? EndTimestamp { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? NextCursor { get; set; } = "0"; + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int? Limit { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetUserMeetingIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetUserMeetingIdResponse.cs new file mode 100644 index 00000000..8e14618a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetUserMeetingIdResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/get_user_meetingid 接口的响应。 + /// + public class CgibinMeetingGetUserMeetingIdResponse : WechatWorkResponse + { + /// + /// 获取或设置会议 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("meetingid_list")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid_list")] + public string[] MeetingIdList { 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/CgibinMeeting/CgibinMeetingUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateRequest.cs new file mode 100644 index 00000000..142a4bf7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateRequest.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/update 接口的请求。 + /// + public class CgibinMeetingUpdateRequest : WechatWorkRequest + { + public static class Types + { + public class Attendee : CgibinMeetingCreateRequest.Types.Attendee + { + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置会议标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string? Title { get; set; } + + /// + /// 获取或设置会议开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("meeting_start")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_start")] + public long? StartTimestamp { get; set; } + + /// + /// 获取或设置会议持续时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("meeting_duration")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_duration")] + public int? Duration { get; set; } + + /// + /// 获取或设置会议类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int? Type { get; set; } + + /// + /// 获取或设置会议描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置会议开始前多久提醒(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_time")] + [System.Text.Json.Serialization.JsonPropertyName("remind_time")] + public int? RemindBeforeEventTime { get; set; } + + /// + /// 获取或设置参与者信息。 + /// + [Newtonsoft.Json.JsonProperty("attendees")] + [System.Text.Json.Serialization.JsonPropertyName("attendees")] + public Types.Attendee? Attendee { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateResponse.cs new file mode 100644 index 00000000..5c8757e1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/update 接口的响应。 + /// + public class CgibinMeetingUpdateResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarAddRequest.cs new file mode 100644 index 00000000..505ca3d4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarAddRequest.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/calendar/add 接口的请求。 + /// + public class CgibinOACalendarAddRequest : WechatWorkRequest + { + public static class Types + { + public class Calendar + { + public static class Types + { + public class Sharer + { + /// + /// 获取或设置共享者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置共享者对日历是否只读权限。 + /// + [Newtonsoft.Json.JsonProperty("readonly")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("readonly")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsReadonly { get; set; } + } + } + + /// + /// 获取或设置组织者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("organizer")] + [System.Text.Json.Serialization.JsonPropertyName("organizer")] + public string OrganizerUserId { get; set; } = string.Empty; + + /// + /// 获取或设置组织者对日历是否只读权限。 + /// + [Newtonsoft.Json.JsonProperty("readonly")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("readonly")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsReadonly { get; set; } + + /// + /// 获取或设置是否将该日历设置为组织者的默认日历。 + /// + [Newtonsoft.Json.JsonProperty("set_as_default")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("set_as_default")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsDefault { get; set; } + + /// + /// 获取或设置日历标题。 + /// + [Newtonsoft.Json.JsonProperty("summary")] + [System.Text.Json.Serialization.JsonPropertyName("summary")] + public string Summary { get; set; } = string.Empty; + + /// + /// 获取或设置日历颜色(格式:#RRGGBB)。 + /// + [Newtonsoft.Json.JsonProperty("color")] + [System.Text.Json.Serialization.JsonPropertyName("color")] + public string Color { get; set; } = string.Empty; + + /// + /// 获取或设置日历描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置日历共享者列表。 + /// + [Newtonsoft.Json.JsonProperty("shares")] + [System.Text.Json.Serialization.JsonPropertyName("shares")] + public IList? SharerList { get; set; } + } + } + + /// + /// 获取或设置日历信息。 + /// + [Newtonsoft.Json.JsonProperty("calendar")] + [System.Text.Json.Serialization.JsonPropertyName("calendar")] + public Types.Calendar Calendar { get; set; } = new Types.Calendar(); + + /// + /// 获取或设置授权方安装的应用 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/CgibinOA/Calendar/CgibinOACalendarAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarAddResponse.cs new file mode 100644 index 00000000..8460b414 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarAddResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/calendar/add 接口的响应。 + /// + public class CgibinOACalendarAddResponse : WechatWorkResponse + { + /// + /// 获取或设置日历 ID。 + /// + [Newtonsoft.Json.JsonProperty("cal_id")] + [System.Text.Json.Serialization.JsonPropertyName("cal_id")] + public string CalendarId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarDeleteRequest.cs new file mode 100644 index 00000000..14d5eb1c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarDeleteRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/calendar/del 接口的请求。 + /// + public class CgibinOACalendarDeleteRequest : WechatWorkRequest + { + /// + /// 获取或设置日历 ID。 + /// + [Newtonsoft.Json.JsonProperty("cal_id")] + [System.Text.Json.Serialization.JsonPropertyName("cal_id")] + public string CalendarId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarDeleteResponse.cs new file mode 100644 index 00000000..862efc7c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarDeleteResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/calendar/del 接口的响应。 + /// + public class CgibinOACalendarDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarGetRequest.cs new file mode 100644 index 00000000..c9d1af67 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarGetRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/calendar/get 接口的请求。 + /// + public class CgibinOACalendarGetRequest : WechatWorkRequest + { + /// + /// 获取或设置日历 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("cal_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("cal_id_list")] + public IList CalendarIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarGetResponse.cs new file mode 100644 index 00000000..2db78f21 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarGetResponse.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/calendar/get 接口的响应。 + /// + public class CgibinOACalendarGetResponse : WechatWorkResponse + { + public static class Types + { + public class Calendar + { + public static class Types + { + public class Sharer + { + /// + /// 获取或设置共享者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置共享者对日历是否只读权限。 + /// + [Newtonsoft.Json.JsonProperty("readonly")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("readonly")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsReadonly { get; set; } + } + } + + /// + /// 获取或设置日历 ID。 + /// + [Newtonsoft.Json.JsonProperty("cal_id")] + [System.Text.Json.Serialization.JsonPropertyName("cal_id")] + public string CalendarId { get; set; } = default!; + + /// + /// 获取或设置组织者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("organizer")] + [System.Text.Json.Serialization.JsonPropertyName("organizer")] + public string OrganizerUserId { get; set; } = default!; + + /// + /// 获取或设置组织者对日历是否只读权限。 + /// + [Newtonsoft.Json.JsonProperty("readonly")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("readonly")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsReadonly { get; set; } + + /// + /// 获取或设置日历标题。 + /// + [Newtonsoft.Json.JsonProperty("summary")] + [System.Text.Json.Serialization.JsonPropertyName("summary")] + public string Summary { get; set; } = default!; + + /// + /// 获取或设置日历颜色(格式:#RRGGBB)。 + /// + [Newtonsoft.Json.JsonProperty("color")] + [System.Text.Json.Serialization.JsonPropertyName("color")] + public string Color { get; set; } = default!; + + /// + /// 获取或设置日历描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置日历共享者列表。 + /// + [Newtonsoft.Json.JsonProperty("shares")] + [System.Text.Json.Serialization.JsonPropertyName("shares")] + public Types.Sharer[]? SharerList { get; set; } = default!; + } + } + + /// + /// 获取或设置日历列表。 + /// + [Newtonsoft.Json.JsonProperty("calendar_list")] + [System.Text.Json.Serialization.JsonPropertyName("calendar_list")] + public Types.Calendar[] CalendarList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarUpdateRequest.cs new file mode 100644 index 00000000..52639069 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarUpdateRequest.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/calendar/update 接口的请求。 + /// + public class CgibinOACalendarUpdateRequest : WechatWorkRequest + { + public static class Types + { + public class Calendar + { + public static class Types + { + public class Sharer : CgibinOACalendarAddRequest.Types.Calendar.Types.Sharer + { + } + } + + /// + /// 获取或设置日历 ID。 + /// + [Newtonsoft.Json.JsonProperty("cal_id")] + [System.Text.Json.Serialization.JsonPropertyName("cal_id")] + public string CalendarId { get; set; } = string.Empty; + + /// + /// 获取或设置组织者对日历是否只读权限。 + /// + [Newtonsoft.Json.JsonProperty("readonly")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("readonly")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsReadonly { get; set; } + + /// + /// 获取或设置日历标题。 + /// + [Newtonsoft.Json.JsonProperty("summary")] + [System.Text.Json.Serialization.JsonPropertyName("summary")] + public string? Summary { get; set; } + + /// + /// 获取或设置日历颜色(格式:#RRGGBB)。 + /// + [Newtonsoft.Json.JsonProperty("color")] + [System.Text.Json.Serialization.JsonPropertyName("color")] + public string? Color { get; set; } + + /// + /// 获取或设置日历描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置日历共享者列表。 + /// + [Newtonsoft.Json.JsonProperty("shares")] + [System.Text.Json.Serialization.JsonPropertyName("shares")] + public IList? SharerList { get; set; } + } + } + + /// + /// 获取或设置日历信息。 + /// + [Newtonsoft.Json.JsonProperty("calendar")] + [System.Text.Json.Serialization.JsonPropertyName("calendar")] + public Types.Calendar Calendar { get; set; } = new Types.Calendar(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarUpdateResponse.cs new file mode 100644 index 00000000..47f059fc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Calendar/CgibinOACalendarUpdateResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/calendar/update 接口的响应。 + /// + public class CgibinOACalendarUpdateResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomBookRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomBookRequest.cs new file mode 100644 index 00000000..da43f34c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomBookRequest.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/book 接口的请求。 + /// + public class CgibinOAMeetingRoomBookRequest : WechatWorkRequest + { + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingroom_id")] + [System.Text.Json.Serialization.JsonPropertyName("meetingroom_id")] + public int MeetingRoomId { get; set; } + + /// + /// 获取或设置会议主题。 + /// + [Newtonsoft.Json.JsonProperty("subject")] + [System.Text.Json.Serialization.JsonPropertyName("subject")] + public string? Subject { get; set; } + + /// + /// 获取或设置预定开始时间戳。 + /// + [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("booker")] + [System.Text.Json.Serialization.JsonPropertyName("booker")] + public string BookerUserId { get; set; } = string.Empty; + + /// + /// 获取或设置参与人的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("attendees")] + [System.Text.Json.Serialization.JsonPropertyName("attendees")] + public IList? AttendeeUserIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomBookResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomBookResponse.cs new file mode 100644 index 00000000..0c87c254 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomBookResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/book 接口的响应。 + /// + public class CgibinOAMeetingRoomBookResponse : WechatWorkResponse + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meeting_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_id")] + public string MeetingId { get; set; } = default!; + + /// + /// 获取或设置关联日程 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public string? ScheduleId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomCancelBookRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomCancelBookRequest.cs new file mode 100644 index 00000000..59aa2fc5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomCancelBookRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/cancel_book 接口的请求。 + /// + public class CgibinOAMeetingRoomCancelBookRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meeting_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_id")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置是否保留关联日程。 + /// + [Newtonsoft.Json.JsonProperty("keep_schedule")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("keep_schedule")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool? IsKeepSchedule { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomCancelBookResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomCancelBookResponse.cs new file mode 100644 index 00000000..8b0e5011 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomCancelBookResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/cancel_book 接口的响应。 + /// + public class CgibinOAMeetingRoomCancelBookResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomGetBookingInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomGetBookingInfoRequest.cs new file mode 100644 index 00000000..927f163a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomGetBookingInfoRequest.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/get_booking_info 接口的请求。 + /// + public class CgibinOAMeetingRoomGetBookingInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置指定会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingroom_id")] + [System.Text.Json.Serialization.JsonPropertyName("meetingroom_id")] + public int? MeetingRoomId { get; set; } + + /// + /// 获取或设置指定预定开始时间戳。 + /// + [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("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string? City { get; set; } + + /// + /// 获取或设置指定楼宇。 + /// + [Newtonsoft.Json.JsonProperty("building")] + [System.Text.Json.Serialization.JsonPropertyName("building")] + public string? Building { get; set; } + + /// + /// 获取或设置指定楼层。 + /// + [Newtonsoft.Json.JsonProperty("floor")] + [System.Text.Json.Serialization.JsonPropertyName("floor")] + public string? Floor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomGetBookingInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomGetBookingInfoResponse.cs new file mode 100644 index 00000000..3d305f7a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/Book/CgibinOAMeetingRoomGetBookingInfoResponse.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/get_booking_info 接口的响应。 + /// + public class CgibinOAMeetingRoomGetBookingInfoResponse : WechatWorkResponse + { + public static class Types + { + public class Booking + { + public static class Types + { + public class Schedule + { + /// + /// 获取或设置预定开始时间戳。 + /// + [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; } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meeting_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_id")] + public string? MeetingId { get; set; } + + /// + /// 获取或设置关联日程 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public string? ScheduleId { get; set; } + + /// + /// 获取或设置预定者的成员账号。 + /// + [Newtonsoft.Json.JsonProperty("booker")] + [System.Text.Json.Serialization.JsonPropertyName("booker")] + public string? BookerUserId { get; set; } + } + } + + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingroom_id")] + [System.Text.Json.Serialization.JsonPropertyName("meetingroom_id")] + public int MeetingRoomId { get; set; } + + /// + /// 获取或设置排期列表。 + /// + [Newtonsoft.Json.JsonProperty("schedule")] + [System.Text.Json.Serialization.JsonPropertyName("schedule")] + public Types.Schedule[] ScheduleList { get; set; } = default!; + } + } + + /// + /// 获取或设置会议室预定列表。 + /// + [Newtonsoft.Json.JsonProperty("booking_list")] + [System.Text.Json.Serialization.JsonPropertyName("booking_list")] + public Types.Booking[] BookingList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomAddRequest.cs new file mode 100644 index 00000000..f55a22d8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomAddRequest.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/add 接口的请求。 + /// + public class CgibinOAMeetingRoomAddRequest : WechatWorkRequest + { + public static class Types + { + public class Coordinate + { + /// + /// 获取或设置经度。 + /// + [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; } = string.Empty; + + /// + /// 获取或设置会议室容纳人数。 + /// + [Newtonsoft.Json.JsonProperty("capacity")] + [System.Text.Json.Serialization.JsonPropertyName("capacity")] + public int Capacity { get; set; } + + /// + /// 获取或设置会议室所在城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string? City { get; set; } + + /// + /// 获取或设置会议室所在楼宇。 + /// + [Newtonsoft.Json.JsonProperty("building")] + [System.Text.Json.Serialization.JsonPropertyName("building")] + public string? Building { get; set; } + + /// + /// 获取或设置会议室所在楼层。 + /// + [Newtonsoft.Json.JsonProperty("floor")] + [System.Text.Json.Serialization.JsonPropertyName("floor")] + public string? Floor { get; set; } + + /// + /// 获取或设置会议室所在建筑经纬度。 + /// + [Newtonsoft.Json.JsonProperty("coordinate")] + [System.Text.Json.Serialization.JsonPropertyName("coordinate")] + public Types.Coordinate? Coordinate { get; set; } + + /// + /// 获取或设置会议室支持的设备 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("equipment")] + [System.Text.Json.Serialization.JsonPropertyName("equipment")] + public IList? EquipmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomAddResponse.cs new file mode 100644 index 00000000..8885e71d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomAddResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/add 接口的响应。 + /// + public class CgibinOAMeetingRoomAddResponse : WechatWorkResponse + { + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingroom_id")] + [System.Text.Json.Serialization.JsonPropertyName("meetingroom_id")] + public int MeetingRoomId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomDeleteRequest.cs new file mode 100644 index 00000000..879888e0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomDeleteRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/del 接口的请求。 + /// + public class CgibinOAMeetingRoomDeleteRequest : WechatWorkRequest + { + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingroom_id")] + [System.Text.Json.Serialization.JsonPropertyName("meetingroom_id")] + public int MeetingRoomId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomDeleteResponse.cs new file mode 100644 index 00000000..2f546a9a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomDeleteResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/del 接口的响应。 + /// + public class CgibinOAMeetingRoomDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomEditRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomEditRequest.cs new file mode 100644 index 00000000..64365642 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomEditRequest.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/edit 接口的请求。 + /// + public class CgibinOAMeetingRoomEditRequest : WechatWorkRequest + { + public static class Types + { + public class Coordinate : CgibinOAMeetingRoomAddRequest.Types.Coordinate + { + } + } + + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingroom_id")] + [System.Text.Json.Serialization.JsonPropertyName("meetingroom_id")] + public int MeetingRoomId { get; set; } + + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// 获取或设置会议室容纳人数。 + /// + [Newtonsoft.Json.JsonProperty("capacity")] + [System.Text.Json.Serialization.JsonPropertyName("capacity")] + public int? Capacity { get; set; } + + /// + /// 获取或设置会议室所在城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string? City { get; set; } + + /// + /// 获取或设置会议室所在楼宇。 + /// + [Newtonsoft.Json.JsonProperty("building")] + [System.Text.Json.Serialization.JsonPropertyName("building")] + public string? Building { get; set; } + + /// + /// 获取或设置会议室所在楼层。 + /// + [Newtonsoft.Json.JsonProperty("floor")] + [System.Text.Json.Serialization.JsonPropertyName("floor")] + public string? Floor { get; set; } + + /// + /// 获取或设置会议室所在建筑经纬度。 + /// + [Newtonsoft.Json.JsonProperty("coordinate")] + [System.Text.Json.Serialization.JsonPropertyName("coordinate")] + public Types.Coordinate? Coordinate { get; set; } + + /// + /// 获取或设置会议室支持的设备 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("equipment")] + [System.Text.Json.Serialization.JsonPropertyName("equipment")] + public IList? EquipmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomEditResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomEditResponse.cs new file mode 100644 index 00000000..77c52f96 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomEditResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/edit 接口的响应。 + /// + public class CgibinOAMeetingRoomEditResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomListRequest.cs new file mode 100644 index 00000000..645416c2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomListRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/list 接口的请求。 + /// + public class CgibinOAMeetingRoomListRequest : WechatWorkRequest + { + /// + /// 获取或设置指定城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string? City { get; set; } + + /// + /// 获取或设置指定楼宇。 + /// + [Newtonsoft.Json.JsonProperty("building")] + [System.Text.Json.Serialization.JsonPropertyName("building")] + public string? Building { get; set; } + + /// + /// 获取或设置指定楼层。 + /// + [Newtonsoft.Json.JsonProperty("floor")] + [System.Text.Json.Serialization.JsonPropertyName("floor")] + public string? Floor { get; set; } + + /// + /// 获取或设置指定支持的设备 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("equipment")] + [System.Text.Json.Serialization.JsonPropertyName("equipment")] + public IList? EquipmentIdList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomListResponse.cs new file mode 100644 index 00000000..71a29b29 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/MettingRoom/CgibinOAMeetingRoomListResponse.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/meetingroom/list 接口的响应。 + /// + public class CgibinOAMeetingRoomListResponse : WechatWorkResponse + { + public static class Types + { + public class MeetingRoom + { + public static class Types + { + public class Coordinate : CgibinOAMeetingRoomAddRequest.Types.Coordinate + { + } + } + + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingroom_id")] + [System.Text.Json.Serialization.JsonPropertyName("meetingroom_id")] + public int MeetingRoomId { get; set; } + + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置会议室容纳人数。 + /// + [Newtonsoft.Json.JsonProperty("capacity")] + [System.Text.Json.Serialization.JsonPropertyName("capacity")] + public int Capacity { get; set; } + + /// + /// 获取或设置会议室所在城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string? City { get; set; } + + /// + /// 获取或设置会议室所在楼宇。 + /// + [Newtonsoft.Json.JsonProperty("building")] + [System.Text.Json.Serialization.JsonPropertyName("building")] + public string? Building { get; set; } + + /// + /// 获取或设置会议室所在楼层。 + /// + [Newtonsoft.Json.JsonProperty("floor")] + [System.Text.Json.Serialization.JsonPropertyName("floor")] + public string? Floor { get; set; } + + /// + /// 获取或设置会议室所在建筑经纬度。 + /// + [Newtonsoft.Json.JsonProperty("coordinate")] + [System.Text.Json.Serialization.JsonPropertyName("coordinate")] + public Types.Coordinate? Coordinate { get; set; } + + /// + /// 获取或设置会议室支持的设备 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("equipment")] + [System.Text.Json.Serialization.JsonPropertyName("equipment")] + public int[]? EquipmentIdList { get; set; } + + /// + /// 获取或设置是否需要审批。 + /// + [Newtonsoft.Json.JsonProperty("need_approval")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("need_approval")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool RequireApproval { get; set; } + } + } + + /// + /// 获取或设置会议室列表。 + /// + [Newtonsoft.Json.JsonProperty("meetingroom_list")] + [System.Text.Json.Serialization.JsonPropertyName("meetingroom_list")] + public Types.MeetingRoom[] MeetingRoomList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleAddRequest.cs new file mode 100644 index 00000000..2809c166 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleAddRequest.cs @@ -0,0 +1,193 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/add 接口的请求。 + /// + public class CgibinOAScheduleAddRequest : WechatWorkRequest + { + public static class Types + { + public class Schedule + { + public static class Types + { + public class Attendee + { + /// + /// 获取或设置参与者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + } + + public class Reminder + { + /// + /// 获取或设置是否需要提醒。 + /// + [Newtonsoft.Json.JsonProperty("is_remind")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_remind")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsRemind { get; set; } + + /// + /// 获取或设置日程开始前多久提醒(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_before_event_secs")] + [System.Text.Json.Serialization.JsonPropertyName("remind_before_event_secs")] + public int? RemindBeforeEventTime { get; set; } + + /// + /// 获取或设置日程开始时间与提醒时间的差值(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_time_diffs")] + [System.Text.Json.Serialization.JsonPropertyName("remind_time_diffs")] + public IList? RemindTimeDiffs { get; set; } + + /// + /// 获取或设置是否重复日程。 + /// + [Newtonsoft.Json.JsonProperty("is_repeat")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_repeat")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsRepeat { get; set; } + + /// + /// 获取或设置重复类型。 + /// + [Newtonsoft.Json.JsonProperty("repeat_type")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_type")] + public int? RepeatType { get; set; } + + /// + /// 获取或设置重复结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("repeat_until")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_until")] + public long? RepeatUntilTimestamp { get; set; } + + /// + /// 获取或设置是否自定义重复。 + /// + [Newtonsoft.Json.JsonProperty("is_custom_repeat")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_custom_repeat")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsCustomRepeat { get; set; } + + /// + /// 获取或设置重复间隔。 + /// + [Newtonsoft.Json.JsonProperty("repeat_interval")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_interval")] + public int? RepeatInterval { get; set; } + + /// + /// 获取或设置每周周几重复。 + /// + [Newtonsoft.Json.JsonProperty("repeat_day_of_week")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_day_of_week")] + public IList? RepeatDayOfWeekList { get; set; } + + /// + /// 获取或设置每月哪几天重复。 + /// + [Newtonsoft.Json.JsonProperty("repeat_day_of_month")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_day_of_month")] + public IList? RepeatDayOfMonthList { get; set; } + + /// + /// 获取或设置时区。 + /// + [Newtonsoft.Json.JsonProperty("timezone")] + [System.Text.Json.Serialization.JsonPropertyName("timezone")] + public int? TimeZone { get; set; } + } + } + + /// + /// 获取或设置组织者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("organizer")] + [System.Text.Json.Serialization.JsonPropertyName("organizer")] + public string OrganizerUserId { 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; } + + /// + /// 获取或设置所属日历 ID。 + /// + [Newtonsoft.Json.JsonProperty("cal_id")] + [System.Text.Json.Serialization.JsonPropertyName("cal_id")] + public string? CalendarId { get; set; } + + /// + /// 获取或设置日程标题。 + /// + [Newtonsoft.Json.JsonProperty("summary")] + [System.Text.Json.Serialization.JsonPropertyName("summary")] + public string? Summary { get; set; } + + /// + /// 获取或设置日程描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置日程地点。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public string? Location { get; set; } + + /// + /// 获取或设置日程提醒信息。 + /// + [Newtonsoft.Json.JsonProperty("reminders")] + [System.Text.Json.Serialization.JsonPropertyName("reminders")] + public Types.Reminder? Reminder { get; set; } + + /// + /// 获取或设置日程参与者列表。 + /// + [Newtonsoft.Json.JsonProperty("attendees")] + [System.Text.Json.Serialization.JsonPropertyName("attendees")] + public IList? AttendeeList { get; set; } + } + } + + /// + /// 获取或设置日程信息。 + /// + [Newtonsoft.Json.JsonProperty("schedule")] + [System.Text.Json.Serialization.JsonPropertyName("schedule")] + public Types.Schedule Schedule { get; set; } = new Types.Schedule(); + + /// + /// 获取或设置授权方安装的应用 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/CgibinOA/Schedule/CgibinOAScheduleAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleAddResponse.cs new file mode 100644 index 00000000..90310245 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleAddResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/add 接口的响应。 + /// + public class CgibinOAScheduleAddResponse : WechatWorkResponse + { + /// + /// 获取或设置日程 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public string ScheduleId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleDeleteRequest.cs new file mode 100644 index 00000000..0d0889e3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleDeleteRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/del 接口的请求。 + /// + public class CgibinOAScheduleDeleteRequest : WechatWorkRequest + { + /// + /// 获取或设置日程 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public string ScheduleId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleDeleteResponse.cs new file mode 100644 index 00000000..7d142532 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleDeleteResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/del 接口的响应。 + /// + public class CgibinOAScheduleDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetByCalendarRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetByCalendarRequest.cs new file mode 100644 index 00000000..1c6d6f5a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetByCalendarRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/get_by_calendar 接口的请求。 + /// + public class CgibinOAScheduleGetByCalendarRequest : WechatWorkRequest + { + /// + /// 获取或设置所属日历 ID。 + /// + [Newtonsoft.Json.JsonProperty("cal_id")] + [System.Text.Json.Serialization.JsonPropertyName("cal_id")] + public string CalendarId { get; set; } = string.Empty; + + /// + /// 获取或设置分页起始位置。 + /// + [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/CgibinOA/Schedule/CgibinOAScheduleGetByCalendarResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetByCalendarResponse.cs new file mode 100644 index 00000000..48fff7dd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetByCalendarResponse.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/get_by_calendar 接口的响应。 + /// + public class CgibinOAScheduleGetByCalendarResponse : WechatWorkResponse + { + public static class Types + { + public class Schedule : CgibinOAScheduleGetResponse.Types.Schedule + { + /// + /// 获取或设置日程序号。 + /// + [Newtonsoft.Json.JsonProperty("sequence")] + [System.Text.Json.Serialization.JsonPropertyName("sequence")] + public int Sequence { get; set; } + } + } + + /// + /// 获取或设置日程列表。 + /// + [Newtonsoft.Json.JsonProperty("schedule_list")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_list")] + public Types.Schedule[] ScheduleList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetRequest.cs new file mode 100644 index 00000000..94f7d658 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/get 接口的请求。 + /// + public class CgibinOAScheduleGetRequest : WechatWorkRequest + { + /// + /// 获取或设置日程 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id_list")] + public IList ScheduleIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetResponse.cs new file mode 100644 index 00000000..f51f113e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleGetResponse.cs @@ -0,0 +1,227 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/get 接口的响应。 + /// + public class CgibinOAScheduleGetResponse : WechatWorkResponse + { + public static class Types + { + public class Schedule + { + public static class Types + { + public class Attendee + { + /// + /// 获取或设置参与者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置参与者接收状态。 + /// + [Newtonsoft.Json.JsonProperty("response_status")] + [System.Text.Json.Serialization.JsonPropertyName("response_status")] + public int Status { get; set; } + } + + public class Reminder + { + public static class Types + { + public class ExcludeTime + { + /// + /// 获取或设置不包含的日期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long StartTimestamp { get; set; } + } + } + + /// + /// 获取或设置是否需要提醒。 + /// + [Newtonsoft.Json.JsonProperty("is_remind")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_remind")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsRemind { get; set; } + + /// + /// 获取或设置日程开始前多久提醒(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_before_event_secs")] + [System.Text.Json.Serialization.JsonPropertyName("remind_before_event_secs")] + public int? RemindBeforeEventTime { get; set; } + + /// + /// 获取或设置日程开始时间与提醒时间的差值(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("remind_time_diffs")] + [System.Text.Json.Serialization.JsonPropertyName("remind_time_diffs")] + public int[]? RemindTimeDiffs { get; set; } + + /// + /// 获取或设置是否重复日程。 + /// + [Newtonsoft.Json.JsonProperty("is_repeat")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_repeat")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsRepeat { get; set; } + + /// + /// 获取或设置重复类型。 + /// + [Newtonsoft.Json.JsonProperty("repeat_type")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_type")] + public int? RepeatType { get; set; } + + /// + /// 获取或设置重复结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("repeat_until")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_until")] + public long? RepeatUntilTimestamp { get; set; } + + /// + /// 获取或设置是否自定义重复。 + /// + [Newtonsoft.Json.JsonProperty("is_custom_repeat")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_custom_repeat")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? IsCustomRepeat { get; set; } + + /// + /// 获取或设置重复间隔。 + /// + [Newtonsoft.Json.JsonProperty("repeat_interval")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_interval")] + public int? RepeatInterval { get; set; } + + /// + /// 获取或设置每周周几重复。 + /// + [Newtonsoft.Json.JsonProperty("repeat_day_of_week")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_day_of_week")] + public int[]? RepeatDayOfWeekList { get; set; } + + /// + /// 获取或设置每月哪几天重复。 + /// + [Newtonsoft.Json.JsonProperty("repeat_day_of_month")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_day_of_month")] + public int[]? RepeatDayOfMonthList { get; set; } + + /// + /// 获取或设置时区。 + /// + [Newtonsoft.Json.JsonProperty("timezone")] + [System.Text.Json.Serialization.JsonPropertyName("timezone")] + public int? TimeZone { get; set; } + + /// + /// 获取或设置重复日程不包含的日期列表。 + /// + [Newtonsoft.Json.JsonProperty("exclude_time_list")] + [System.Text.Json.Serialization.JsonPropertyName("exclude_time_list")] + public Types.ExcludeTime[]? ExcludeTimeList { get; set; } + } + } + + /// + /// 获取或设置日程 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public string ScheduleId { get; set; } = default!; + + /// + /// 获取或设置组织者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("organizer")] + [System.Text.Json.Serialization.JsonPropertyName("organizer")] + public string OrganizerUserId { get; set; } = default!; + + /// + /// 获取或设置日程开始时间戳。 + /// + [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; } + + /// + /// 获取或设置所属日历 ID。 + /// + [Newtonsoft.Json.JsonProperty("cal_id")] + [System.Text.Json.Serialization.JsonPropertyName("cal_id")] + public string? CalendarId { get; set; } + + /// + /// 获取或设置日程状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置日程标题。 + /// + [Newtonsoft.Json.JsonProperty("summary")] + [System.Text.Json.Serialization.JsonPropertyName("summary")] + public string Summary { get; set; } = default!; + + /// + /// 获取或设置日程描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置日程地点。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public string Location { get; set; } = default!; + + /// + /// 获取或设置日程提醒信息。 + /// + [Newtonsoft.Json.JsonProperty("reminders")] + [System.Text.Json.Serialization.JsonPropertyName("reminders")] + public Types.Reminder Reminder { get; set; } = default!; + + /// + /// 获取或设置日程参与者列表。 + /// + [Newtonsoft.Json.JsonProperty("attendees")] + [System.Text.Json.Serialization.JsonPropertyName("attendees")] + public Types.Attendee[] AttendeeList { get; set; } = default!; + } + } + + /// + /// 获取或设置日程列表。 + /// + [Newtonsoft.Json.JsonProperty("schedule_list")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_list")] + public Types.Schedule[] ScheduleList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleUpdateRequest.cs new file mode 100644 index 00000000..fff5dbc9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleUpdateRequest.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/update 接口的请求。 + /// + public class CgibinOAScheduleUpdateRequest : WechatWorkRequest + { + public static class Types + { + public class Schedule + { + public static class Types + { + public class Attendee : CgibinOAScheduleAddRequest.Types.Schedule.Types.Attendee + { + } + + public class Reminder : CgibinOAScheduleAddRequest.Types.Schedule.Types.Reminder + { + } + } + + /// + /// 获取或设置日程 ID。 + /// + [Newtonsoft.Json.JsonProperty("schedule_id")] + [System.Text.Json.Serialization.JsonPropertyName("schedule_id")] + public string ScheduleId { get; set; } = string.Empty; + + /// + /// 获取或设置组织者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("organizer")] + [System.Text.Json.Serialization.JsonPropertyName("organizer")] + public string? OrganizerUserId { get; set; } + + /// + /// 获取或设置日程开始时间戳。 + /// + [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("summary")] + [System.Text.Json.Serialization.JsonPropertyName("summary")] + public string? Summary { get; set; } + + /// + /// 获取或设置日程描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string? Description { get; set; } + + /// + /// 获取或设置日程地点。 + /// + [Newtonsoft.Json.JsonProperty("location")] + [System.Text.Json.Serialization.JsonPropertyName("location")] + public string? Location { get; set; } + + /// + /// 获取或设置日程提醒信息。 + /// + [Newtonsoft.Json.JsonProperty("reminders")] + [System.Text.Json.Serialization.JsonPropertyName("reminders")] + public Types.Reminder? Reminder { get; set; } + + /// + /// 获取或设置日程参与者列表。 + /// + [Newtonsoft.Json.JsonProperty("attendees")] + [System.Text.Json.Serialization.JsonPropertyName("attendees")] + public IList? AttendeeList { get; set; } + } + } + + /// + /// 获取或设置日程信息。 + /// + [Newtonsoft.Json.JsonProperty("schedule")] + [System.Text.Json.Serialization.JsonPropertyName("schedule")] + public Types.Schedule Schedule { get; set; } = new Types.Schedule(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleUpdateResponse.cs new file mode 100644 index 00000000..05fa61b4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinOA/Schedule/CgibinOAScheduleUpdateResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/oa/schedule/update 接口的响应。 + /// + public class CgibinOAScheduleUpdateResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCCallRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCCallRequest.cs new file mode 100644 index 00000000..3f7b980e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCCallRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/pstncc/call 接口的请求。 + /// + public class CgibinPSTNCCCallRequest : WechatWorkRequest + { + /// + /// 获取或设置呼叫的成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("callee_userid")] + [System.Text.Json.Serialization.JsonPropertyName("callee_userid")] + public IList CalleeUserIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCCallResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCCallResponse.cs new file mode 100644 index 00000000..7be19e25 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCCallResponse.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/pstncc/call 接口的响应。 + /// + public class CgibinPSTNCCCallResponse : WechatWorkResponse + { + public static class Types + { + public class CallState + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = default!; + + /// + /// 获取或设置呼叫 ID。 + /// + [Newtonsoft.Json.JsonProperty("callid")] + [System.Text.Json.Serialization.JsonPropertyName("callid")] + public string CallId { get; set; } = default!; + + /// + /// 获取或设置呼叫结果状态。 + /// + [Newtonsoft.Json.JsonProperty("code")] + [System.Text.Json.Serialization.JsonPropertyName("code")] + public int CallCode { get; set; } + } + } + + /// + /// 获取或设置自动语音来电呼叫状态列表。 + /// + [Newtonsoft.Json.JsonProperty("states")] + [System.Text.Json.Serialization.JsonPropertyName("states")] + public Types.CallState[] CallStateList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCGetStatesRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCGetStatesRequest.cs new file mode 100644 index 00000000..118bb266 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCGetStatesRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/pstncc/getstates 接口的请求。 + /// + public class CgibinPSTNCCGetStatesRequest : WechatWorkRequest + { + /// + /// 获取或设置呼叫的成员账号。 + /// + [Newtonsoft.Json.JsonProperty("callee_userid")] + [System.Text.Json.Serialization.JsonPropertyName("callee_userid")] + public string CalleeUserId { get; set; } = string.Empty; + + /// + /// 获取或设置呼叫 ID。 + /// + [Newtonsoft.Json.JsonProperty("callid")] + [System.Text.Json.Serialization.JsonPropertyName("callid")] + public string CallId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCGetStatesResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCGetStatesResponse.cs new file mode 100644 index 00000000..93993020 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinPSTNCC/CgibinPSTNCCGetStatesResponse.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/pstncc/getstates 接口的响应。 + /// + public class CgibinPSTNCCGetStatesResponse : WechatWorkResponse + { + /// + /// 获取或设置是否通话。 + /// + [Newtonsoft.Json.JsonProperty("istalked")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("istalked")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsTalked { get; set; } + + /// + /// 获取或设置呼叫发起时间戳。 + /// + [Newtonsoft.Json.JsonProperty("calltime")] + [System.Text.Json.Serialization.JsonPropertyName("calltime")] + public int CallTimestamp { get; set; } + + /// + /// 获取或设置通话时长(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("talktime")] + [System.Text.Json.Serialization.JsonPropertyName("talktime")] + public int TalkTime { get; set; } + + /// + /// 获取或设置呼叫结果状态。 + /// + [Newtonsoft.Json.JsonProperty("reason")] + [System.Text.Json.Serialization.JsonPropertyName("reason")] + public int Reason { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileCreateRequest.cs new file mode 100644 index 00000000..e44d1cbd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileCreateRequest.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_create 接口的请求。 + /// + public class CgibinWebDriveFileCreateRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置上级文件 ID 或空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("fatherid")] + [System.Text.Json.Serialization.JsonPropertyName("fatherid")] + public string ParentFileOrSpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置文件类型。 + /// + [Newtonsoft.Json.JsonProperty("file_type")] + [System.Text.Json.Serialization.JsonPropertyName("file_type")] + public int FileType { get; set; } + + /// + /// 获取或设置文件名称。 + /// + [Newtonsoft.Json.JsonProperty("file_name")] + [System.Text.Json.Serialization.JsonPropertyName("file_name")] + public string FileName { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileCreateResponse.cs new file mode 100644 index 00000000..522f7530 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileCreateResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_create 接口的响应。 + /// + public class CgibinWebDriveFileCreateResponse : CgibinWebDriveFileUploadResponse + { + /// + /// 获取或设置访问链接。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDeleteRequest.cs new file mode 100644 index 00000000..4214bcb4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDeleteRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_delete 接口的请求。 + /// + public class CgibinWebDriveFileDeleteRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public IList FileIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDeleteResponse.cs new file mode 100644 index 00000000..4877b233 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDeleteResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_delete 接口的响应。 + /// + public class CgibinWebDriveFileDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDownloadRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDownloadRequest.cs new file mode 100644 index 00000000..80c6484a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDownloadRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_download 接口的请求。 + /// + public class CgibinWebDriveFileDownloadRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDownloadResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDownloadResponse.cs new file mode 100644 index 00000000..6beaabf7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileDownloadResponse.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_download 接口的响应。 + /// + public class CgibinWebDriveFileDownloadResponse : WechatWorkResponse + { + /// + /// 获取或设置文件下载 URL。 + /// + [Newtonsoft.Json.JsonProperty("download_url")] + [System.Text.Json.Serialization.JsonPropertyName("download_url")] + public string DownloadUrl { get; set; } = default!; + + /// + /// 获取或设置下载请求时携带的 Cookie 的 Key。 + /// + [Newtonsoft.Json.JsonProperty("cookie_name")] + [System.Text.Json.Serialization.JsonPropertyName("cookie_name")] + public string? CookieKey { get; set; } + + /// + /// 获取或设置下载请求时携带的 Cookie 的值。 + /// + [Newtonsoft.Json.JsonProperty("cookie_value")] + [System.Text.Json.Serialization.JsonPropertyName("cookie_value")] + public string? CookieValue { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileInfoRequest.cs new file mode 100644 index 00000000..9ce47dc1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileInfoRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_info 接口的请求。 + /// + public class CgibinWebDriveFileInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileInfoResponse.cs new file mode 100644 index 00000000..3dc71319 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileInfoResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_info 接口的响应。 + /// + public class CgibinWebDriveFileInfoResponse : WechatWorkResponse + { + public static class Types + { + public class File : CgibinWebDriveFileListResponse.Types.FileItem + { + } + } + + /// + /// 获取或设置文件信息。 + /// + [Newtonsoft.Json.JsonProperty("file_info")] + [System.Text.Json.Serialization.JsonPropertyName("file_info")] + public Types.File File { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileListRequest.cs new file mode 100644 index 00000000..79878876 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileListRequest.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_list 接口的请求。 + /// + public class CgibinWebDriveFileListRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置上级文件 ID 或空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("fatherid")] + [System.Text.Json.Serialization.JsonPropertyName("fatherid")] + public string ParentFileOrSpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置排序方式。 + /// + [Newtonsoft.Json.JsonProperty("sort_type")] + [System.Text.Json.Serialization.JsonPropertyName("sort_type")] + public int SortType { get; set; } + + /// + /// 获取或设置分页起始位置。 + /// + [Newtonsoft.Json.JsonProperty("start")] + [System.Text.Json.Serialization.JsonPropertyName("start")] + public int Offset { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileListResponse.cs new file mode 100644 index 00000000..1c699ab2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileListResponse.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_list 接口的响应。 + /// + public class CgibinWebDriveFileListResponse : WechatWorkResponse + { + public static class Types + { + public class FileList + { + /// + /// 获取或设置文件列表。 + /// + [Newtonsoft.Json.JsonProperty("item")] + [System.Text.Json.Serialization.JsonPropertyName("item")] + public FileItem[] Items { get; set; } = default!; + } + + public class FileItem + { + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = default!; + + /// + /// 获取或设置文件名称。 + /// + [Newtonsoft.Json.JsonProperty("file_name")] + [System.Text.Json.Serialization.JsonPropertyName("file_name")] + public string FileName { get; set; } = default!; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string? SpaceId { get; set; } + + /// + /// 获取或设置上级文件 ID 或空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("fatherid")] + [System.Text.Json.Serialization.JsonPropertyName("fatherid")] + public string? ParentFileOrSpaceId { get; set; } + + /// + /// 获取或设置文件大小(单位:字节)。 + /// + [Newtonsoft.Json.JsonProperty("file_size")] + [System.Text.Json.Serialization.JsonPropertyName("file_size")] + public int? FileSize { get; set; } + + /// + /// 获取或设置文件类型。 + /// + [Newtonsoft.Json.JsonProperty("file_type")] + [System.Text.Json.Serialization.JsonPropertyName("file_type")] + public int? FileType { get; set; } + + /// + /// 获取或设置文件状态。 + /// + [Newtonsoft.Json.JsonProperty("file_status")] + [System.Text.Json.Serialization.JsonPropertyName("file_status")] + public int? FileStatus { get; set; } + + /// + /// 获取或设置文件创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("ctime")] + [System.Text.Json.Serialization.JsonPropertyName("ctime")] + public long? CreateTimestamp { get; set; } + + /// + /// 获取或设置文件最后修改时间戳。 + /// + [Newtonsoft.Json.JsonProperty("mtime")] + [System.Text.Json.Serialization.JsonPropertyName("mtime")] + public long? ModifyTimestamp { get; set; } + + /// + /// 获取或设置创建者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("create_userid")] + [System.Text.Json.Serialization.JsonPropertyName("create_userid")] + public string? CreatorUserId { get; set; } + + /// + /// 获取或设置最后更新者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("update_userid")] + [System.Text.Json.Serialization.JsonPropertyName("update_userid")] + public string? UpdaterUserId { get; set; } + + /// + /// 获取或设置文件 SHA 哈希值。 + /// + [Newtonsoft.Json.JsonProperty("sha")] + [System.Text.Json.Serialization.JsonPropertyName("sha")] + public string? FileSHA { get; set; } + + /// + /// 获取或设置文件 MD5 哈希值。 + /// + [Newtonsoft.Json.JsonProperty("md5")] + [System.Text.Json.Serialization.JsonPropertyName("md5")] + public string? FileMD5 { get; set; } + + /// + /// 获取或设置访问链接。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string? Url { get; set; } + } + } + + /// + /// 获取或设置文件列表。 + /// + [Newtonsoft.Json.JsonProperty("file_list")] + [System.Text.Json.Serialization.JsonPropertyName("file_list")] + public Types.FileList FileList { get; set; } = default!; + + /// + /// 获取或设置是否还有更多数据。 + /// + [Newtonsoft.Json.JsonProperty("has_more")] + [System.Text.Json.Serialization.JsonPropertyName("has_more")] + public bool HasMore { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_start")] + [System.Text.Json.Serialization.JsonPropertyName("next_start")] + public int? NextStart { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileMoveRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileMoveRequest.cs new file mode 100644 index 00000000..4505e9b2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileMoveRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_move 接口的请求。 + /// + public class CgibinWebDriveFileMoveRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置上级文件 ID 或空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("fatherid")] + [System.Text.Json.Serialization.JsonPropertyName("fatherid")] + public string ParentFileOrSpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public IList FileIdList { get; set; } = new List(); + + /// + /// 获取或设置是否覆盖同名文件。 + /// + [Newtonsoft.Json.JsonProperty("replace")] + [System.Text.Json.Serialization.JsonPropertyName("replace")] + public bool? RequireReplace { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileMoveResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileMoveResponse.cs new file mode 100644 index 00000000..9a746ea9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileMoveResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_move 接口的响应。 + /// + public class CgibinWebDriveFileMoveResponse : WechatWorkResponse + { + public static class Types + { + public class FileList : CgibinWebDriveFileListResponse.Types.FileList + { + } + } + + /// + /// 获取或设置文件列表。 + /// + [Newtonsoft.Json.JsonProperty("file_list")] + [System.Text.Json.Serialization.JsonPropertyName("file_list")] + public Types.FileList FileList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileRenameRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileRenameRequest.cs new file mode 100644 index 00000000..d48afd79 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileRenameRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_rename 接口的请求。 + /// + public class CgibinWebDriveFileRenameRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = string.Empty; + + /// + /// 获取或设置新的文件名称。 + /// + [Newtonsoft.Json.JsonProperty("new_name")] + [System.Text.Json.Serialization.JsonPropertyName("new_name")] + public string FileName { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileRenameResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileRenameResponse.cs new file mode 100644 index 00000000..43b495fb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileRenameResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_rename 接口的响应。 + /// + public class CgibinWebDriveFileRenameResponse : WechatWorkResponse + { + public static class Types + { + public class File : CgibinWebDriveFileInfoResponse.Types.File + { + } + } + + /// + /// 获取或设置文件信息。 + /// + [Newtonsoft.Json.JsonProperty("file")] + [System.Text.Json.Serialization.JsonPropertyName("file")] + public Types.File File { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileSettingRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileSettingRequest.cs new file mode 100644 index 00000000..78baf00c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileSettingRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_setting 接口的请求。 + /// + public class CgibinWebDriveFileSettingRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = string.Empty; + + /// + /// 获取或设置权限范围。 + /// + [Newtonsoft.Json.JsonProperty("auth_scope")] + [System.Text.Json.Serialization.JsonPropertyName("auth_scope")] + public int AuthScope { get; set; } + + /// + /// 获取或设置权限。 + /// + [Newtonsoft.Json.JsonProperty("auth")] + [System.Text.Json.Serialization.JsonPropertyName("auth")] + public int? Authority { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileSettingResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileSettingResponse.cs new file mode 100644 index 00000000..7875faaf --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileSettingResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_setting 接口的响应。 + /// + public class CgibinWebDriveFileSettingResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileShareRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileShareRequest.cs new file mode 100644 index 00000000..f03259d7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileShareRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_share 接口的请求。 + /// + public class CgibinWebDriveFileShareRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileShareResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileShareResponse.cs new file mode 100644 index 00000000..bb236217 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileShareResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_share 接口的响应。 + /// + public class CgibinWebDriveFileShareResponse : WechatWorkResponse + { + /// + /// 获取或设置分享链接。 + /// + [Newtonsoft.Json.JsonProperty("share_url")] + [System.Text.Json.Serialization.JsonPropertyName("share_url")] + public string ShareUrl { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileUploadRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileUploadRequest.cs new file mode 100644 index 00000000..e63d0416 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileUploadRequest.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_upload 接口的请求。 + /// + public class CgibinWebDriveFileUploadRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置上级文件 ID 或空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("fatherid")] + [System.Text.Json.Serialization.JsonPropertyName("fatherid")] + public string ParentFileOrSpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置文件名称。 + /// + [Newtonsoft.Json.JsonProperty("file_name")] + [System.Text.Json.Serialization.JsonPropertyName("file_name")] + public string FileName { get; set; } = string.Empty; + + /// + /// 获取或设置经过 Base64 编码的文件内容。 + /// + [Newtonsoft.Json.JsonProperty("file_base64_content")] + [System.Text.Json.Serialization.JsonPropertyName("file_base64_content")] + public string FileData { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileUploadResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileUploadResponse.cs new file mode 100644 index 00000000..b0675122 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/File/CgibinWebDriveFileUploadResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_upload 接口的响应。 + /// + public class CgibinWebDriveFileUploadResponse : WechatWorkResponse + { + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLAddRequest.cs new file mode 100644 index 00000000..1d32c035 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLAddRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_acl_add 接口的请求。 + /// + public class CgibinWebDriveFileACLAddRequest : WechatWorkRequest + { + public static class Types + { + public class AuthorizedUser : CgibinWebDriveSpaceACLAddRequest.Types.AuthorizedUser + { + } + } + + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = string.Empty; + + /// + /// 获取或设置文件授权成员列表。 + /// + [Newtonsoft.Json.JsonProperty("auth_info")] + [System.Text.Json.Serialization.JsonPropertyName("auth_info")] + public IList AuthorizedUserList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLAddResponse.cs new file mode 100644 index 00000000..ecc7d34b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLAddResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_acl_add 接口的响应。 + /// + public class CgibinWebDriveFileACLAddResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLDeleteRequest.cs new file mode 100644 index 00000000..b84486e8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLDeleteRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_acl_del 接口的请求。 + /// + public class CgibinWebDriveFileACLDeleteRequest : WechatWorkRequest + { + public static class Types + { + public class UnauthorizedUser : CgibinWebDriveSpaceACLDeleteRequest.Types.UnauthorizedUser + { + } + } + + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("fileid")] + [System.Text.Json.Serialization.JsonPropertyName("fileid")] + public string FileId { get; set; } = string.Empty; + + /// + /// 获取或设置文件解除授权成员列表。 + /// + [Newtonsoft.Json.JsonProperty("auth_info")] + [System.Text.Json.Serialization.JsonPropertyName("auth_info")] + public IList UnauthorizedUserList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLDeleteResponse.cs new file mode 100644 index 00000000..9b40246c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/FileACL/CgibinWebDriveFileACLDeleteResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/file_acl_del 接口的响应。 + /// + public class CgibinWebDriveFileACLDeleteResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceCreateRequest.cs new file mode 100644 index 00000000..709a2692 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceCreateRequest.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_create 接口的请求。 + /// + public class CgibinWebDriveSpaceCreateRequest : WechatWorkRequest + { + public static class Types + { + public class AuthorizedUser + { + /// + /// 获取或设置类型。 + /// + [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; } + + /// + /// 获取或设置部门 ID。 + /// + [Newtonsoft.Json.JsonProperty("departmentid")] + [System.Text.Json.Serialization.JsonPropertyName("departmentid")] + public int? DepartmentId { get; set; } + + /// + /// 获取或设置权限。 + /// + [Newtonsoft.Json.JsonProperty("auth")] + [System.Text.Json.Serialization.JsonPropertyName("auth")] + public int Authority { get; set; } + } + } + + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间标题。 + /// + [Newtonsoft.Json.JsonProperty("space_name")] + [System.Text.Json.Serialization.JsonPropertyName("space_name")] + public string SpaceName { get; set; } = string.Empty; + + /// + /// 获取或设置空间授权成员列表。 + /// + [Newtonsoft.Json.JsonProperty("auth_info")] + [System.Text.Json.Serialization.JsonPropertyName("auth_info")] + public IList? AuthorizedUserList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceCreateResponse.cs new file mode 100644 index 00000000..4a16127b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceCreateResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_create 接口的响应。 + /// + public class CgibinWebDriveSpaceCreateResponse : WechatWorkResponse + { + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceDismissRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceDismissRequest.cs new file mode 100644 index 00000000..7017a7f2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceDismissRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_dismiss 接口的请求。 + /// + public class CgibinWebDriveSpaceDismissRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceDismissResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceDismissResponse.cs new file mode 100644 index 00000000..bab9fe81 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceDismissResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_dismiss 接口的响应。 + /// + public class CgibinWebDriveSpaceDismissResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceInfoRequest.cs new file mode 100644 index 00000000..23e869e7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceInfoRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_info 接口的请求。 + /// + public class CgibinWebDriveSpaceInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceInfoResponse.cs new file mode 100644 index 00000000..0cddf6b3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceInfoResponse.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_info 接口的响应。 + /// + public class CgibinWebDriveSpaceInfoResponse : WechatWorkResponse + { + public static class Types + { + public class Space + { + public static class Types + { + public class ACL + { + /// + /// 获取或设置空间授权成员列表。 + /// + [Newtonsoft.Json.JsonProperty("auth_info")] + [System.Text.Json.Serialization.JsonPropertyName("auth_info")] + public AuthorizedUser[] AuthorizedUserList { get; set; } = default!; + + /// + /// 获取或设置空间无权限成员列表。 + /// + [Newtonsoft.Json.JsonProperty("quit_userid")] + [System.Text.Json.Serialization.JsonPropertyName("quit_userid")] + public string[] QuitUserIdList { get; set; } = default!; + } + + public class AuthorizedUser : CgibinWebDriveSpaceCreateRequest.Types.AuthorizedUser + { + } + } + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = default!; + + /// + /// 获取或设置空间标题。 + /// + [Newtonsoft.Json.JsonProperty("space_name")] + [System.Text.Json.Serialization.JsonPropertyName("space_name")] + public string SpaceName { get; set; } = default!; + + /// + /// 获取或设置访问控制信息。 + /// + [Newtonsoft.Json.JsonProperty("auth_list")] + [System.Text.Json.Serialization.JsonPropertyName("auth_list")] + public Types.ACL ACL { get; set; } = default!; + } + } + + /// + /// 获取或设置空间信息。 + /// + [Newtonsoft.Json.JsonProperty("space_info")] + [System.Text.Json.Serialization.JsonPropertyName("space_info")] + public Types.Space Space { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceRenameRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceRenameRequest.cs new file mode 100644 index 00000000..c3b8b7a2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceRenameRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_rename 接口的请求。 + /// + public class CgibinWebDriveSpaceRenameRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置空间标题。 + /// + [Newtonsoft.Json.JsonProperty("space_name")] + [System.Text.Json.Serialization.JsonPropertyName("space_name")] + public string SpaceName { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceRenameResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceRenameResponse.cs new file mode 100644 index 00000000..b862457a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceRenameResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_rename 接口的响应。 + /// + public class CgibinWebDriveSpaceRenameResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceSettingRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceSettingRequest.cs new file mode 100644 index 00000000..81058820 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceSettingRequest.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_setting 接口的请求。 + /// + public class CgibinWebDriveSpaceSettingRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置是否启用水印。 + /// + [Newtonsoft.Json.JsonProperty("enable_watermark")] + [System.Text.Json.Serialization.JsonPropertyName("enable_watermark")] + public bool? EnableWatermark { get; set; } + + /// + /// 获取或设置启用成员邀请链接。 + /// + [Newtonsoft.Json.JsonProperty("enable_share_url")] + [System.Text.Json.Serialization.JsonPropertyName("enable_share_url")] + public bool? EnableShareUrl { get; set; } + + /// + /// 获取或设置是否仅管理员可增减空间成员和修改文件分享设置。 + /// + [Newtonsoft.Json.JsonProperty("add_member_only_admin")] + [System.Text.Json.Serialization.JsonPropertyName("add_member_only_admin")] + public bool? IsOnlyAdminCanAddMember { get; set; } + + /// + /// 获取或设置是否通过链接加入空间无需审批。 + /// + [Newtonsoft.Json.JsonProperty("share_url_no_approve")] + [System.Text.Json.Serialization.JsonPropertyName("share_url_no_approve")] + public bool? IsShareUrlNoApprove { get; set; } + + /// + /// 获取或设置邀请链接默认权限。 + /// + [Newtonsoft.Json.JsonProperty("share_url_no_approve_default_auth")] + [System.Text.Json.Serialization.JsonPropertyName("share_url_no_approve_default_auth")] + public int? ShareUrlNoApproveDefaultAuthority { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceSettingResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceSettingResponse.cs new file mode 100644 index 00000000..6ffc9579 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceSettingResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_setting 接口的响应。 + /// + public class CgibinWebDriveSpaceSettingResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceShareRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceShareRequest.cs new file mode 100644 index 00000000..30501dfe --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceShareRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_share 接口的请求。 + /// + public class CgibinWebDriveSpaceShareRequest : WechatWorkRequest + { + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceShareResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceShareResponse.cs new file mode 100644 index 00000000..f2d3ffad --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/Space/CgibinWebDriveSpaceShareResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_share 接口的响应。 + /// + public class CgibinWebDriveSpaceShareResponse : WechatWorkResponse + { + /// + /// 获取或设置邀请链接。 + /// + [Newtonsoft.Json.JsonProperty("space_share_url")] + [System.Text.Json.Serialization.JsonPropertyName("space_share_url")] + public string ShareUrl { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLAddRequest.cs new file mode 100644 index 00000000..b74e6c13 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLAddRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_acl_add 接口的请求。 + /// + public class CgibinWebDriveSpaceACLAddRequest : WechatWorkRequest + { + public static class Types + { + public class AuthorizedUser : CgibinWebDriveSpaceCreateRequest.Types.AuthorizedUser + { + } + } + + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置空间授权成员列表。 + /// + [Newtonsoft.Json.JsonProperty("auth_info")] + [System.Text.Json.Serialization.JsonPropertyName("auth_info")] + public IList AuthorizedUserList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLAddResponse.cs new file mode 100644 index 00000000..ee5b9ad5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLAddResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_acl_add 接口的响应。 + /// + public class CgibinWebDriveSpaceACLAddResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLDeleteRequest.cs new file mode 100644 index 00000000..6d2b0e0c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLDeleteRequest.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_acl_del 接口的请求。 + /// + public class CgibinWebDriveSpaceACLDeleteRequest : WechatWorkRequest + { + public static class Types + { + public class UnauthorizedUser + { + /// + /// 获取或设置类型。 + /// + [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; } + + /// + /// 获取或设置部门 ID。 + /// + [Newtonsoft.Json.JsonProperty("departmentid")] + [System.Text.Json.Serialization.JsonPropertyName("departmentid")] + public int? DepartmentId { get; set; } + } + } + + /// + /// 获取或设置操作者成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string UserId { get; set; } = string.Empty; + + /// + /// 获取或设置空间 ID。 + /// + [Newtonsoft.Json.JsonProperty("spaceid")] + [System.Text.Json.Serialization.JsonPropertyName("spaceid")] + public string SpaceId { get; set; } = string.Empty; + + /// + /// 获取或设置空间解除授权成员列表。 + /// + [Newtonsoft.Json.JsonProperty("auth_info")] + [System.Text.Json.Serialization.JsonPropertyName("auth_info")] + public IList UnauthorizedUserList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLDeleteResponse.cs new file mode 100644 index 00000000..9c452ff6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWebDrive/SpaceACL/CgibinWebDriveSpaceACLDeleteResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/wedrive/space_acl_del 接口的响应。 + /// + public class CgibinWebDriveSpaceACLDeleteResponse : WechatWorkResponse + { + } +}