diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs index dcd57029..c98069bf 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs @@ -353,5 +353,147 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + #region Enroll + /// + /// 异步调用 [POST] /cgi-bin/meeting/enroll/set_config 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98821 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingEnrollSetConfigAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollSetConfigRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "set_config") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/enroll/get_config 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98821 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingEnrollGetConfigAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollGetConfigRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "get_config") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/enroll/query_by_tmp_openid 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98794 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingEnrollQueryByTempOpenIdAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollQueryByTempOpenIdRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "query_by_tmp_openid") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/enroll/list 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98810 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingEnrollListAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollListRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/enroll/approve 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98807 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingEnrollApproveAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollApproveRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "approve") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/enroll/import 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98816 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingEnrollImportAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollImportRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "import") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/enroll/delete 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98817 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingEnrollDeleteAsync(this WechatWorkClient client, Models.CgibinMeetingEnrollDeleteRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "cgi-bin", "meeting", "enroll", "delete") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveRequest.cs new file mode 100644 index 00000000..79c971f9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveRequest.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/approve 接口的请求。 + /// + public class CgibinMeetingEnrollApproveRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置审批动作。 + /// + [Newtonsoft.Json.JsonProperty("action")] + [System.Text.Json.Serialization.JsonPropertyName("action")] + public int ActionType { get; set; } + + /// + /// 获取或设置报名 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("enroll_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_id_list")] + public IList EnrollIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveResponse.cs new file mode 100644 index 00000000..108b2547 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/approve 接口的响应。 + /// + public class CgibinMeetingEnrollApproveResponse : WechatWorkResponse + { + /// + /// 获取或设置成功处理的数量。 + /// + [Newtonsoft.Json.JsonProperty("handled_count")] + [System.Text.Json.Serialization.JsonPropertyName("handled_count")] + public int HandledCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteRequest.cs new file mode 100644 index 00000000..48c92943 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteRequest.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/delete 接口的请求。 + /// + public class CgibinMeetingEnrollDeleteRequest : WechatWorkRequest + { + public static class Types + { + public class Enroll + { + /// + /// 获取或设置报名 ID。 + /// + [Newtonsoft.Json.JsonProperty("enroll_id")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_id")] + public string EnrollId { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置报名列表。 + /// + [Newtonsoft.Json.JsonProperty("enroll_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_id_list")] + public IList EnrollList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteResponse.cs new file mode 100644 index 00000000..394ec316 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/delete 接口的响应。 + /// + public class CgibinMeetingEnrollDeleteResponse : WechatWorkResponse + { + /// + /// 获取或设置成功删除的报名信息条数。 + /// + [Newtonsoft.Json.JsonProperty("total_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_count")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigRequest.cs new file mode 100644 index 00000000..061c9421 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/get_config 接口的请求。 + /// + public class CgibinMeetingEnrollGetConfigRequest : 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/Enroll/CgibinMeetingEnrollGetConfigResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigResponse.cs new file mode 100644 index 00000000..7d9b387b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigResponse.cs @@ -0,0 +1,90 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/get_config 接口的响应。 + /// + public class CgibinMeetingEnrollGetConfigResponse : WechatWorkResponse + { + public static class Types + { + public class Question + { + public static class Types + { + public class Option + { + /// + /// 获取或设置选项内容。 + /// + [Newtonsoft.Json.JsonProperty("content")] + [System.Text.Json.Serialization.JsonPropertyName("content")] + public string? Content { get; set; } + } + } + + /// + /// 获取或设置必填类型。 + /// + [Newtonsoft.Json.JsonProperty("is_required")] + [System.Text.Json.Serialization.JsonPropertyName("is_required")] + public int RequiredType { get; set; } + + /// + /// 获取或设置问题类型。 + /// + [Newtonsoft.Json.JsonProperty("question_type")] + [System.Text.Json.Serialization.JsonPropertyName("question_type")] + public int QuestionType { get; set; } + + /// + /// 获取或设置特殊问题类型。 + /// + [Newtonsoft.Json.JsonProperty("special_type")] + [System.Text.Json.Serialization.JsonPropertyName("special_type")] + public int SpecialType { get; set; } + + /// + /// 获取或设置问题标题。 + /// + [Newtonsoft.Json.JsonProperty("question_title")] + [System.Text.Json.Serialization.JsonPropertyName("question_title")] + public string? QuestionTitle { get; set; } + + /// + /// 获取或设置选项列表。 + /// + [Newtonsoft.Json.JsonProperty("option_list")] + [System.Text.Json.Serialization.JsonPropertyName("option_list")] + public Types.Option[]? OptionList { get; set; } = default!; + } + } + + /// + /// 获取或设置审批类型。 + /// + [Newtonsoft.Json.JsonProperty("approve_type")] + [System.Text.Json.Serialization.JsonPropertyName("approve_type")] + public int ApproveType { get; set; } + + /// + /// 获取或设置收集问题类型。 + /// + [Newtonsoft.Json.JsonProperty("is_collect_question")] + [System.Text.Json.Serialization.JsonPropertyName("is_collect_question")] + public int CollectQuestionType { get; set; } + + /// + /// 获取或设置问题列表。 + /// + [Newtonsoft.Json.JsonProperty("question_list")] + [System.Text.Json.Serialization.JsonPropertyName("question_list")] + public Types.Question[] QuestionList { get; set; } = default!; + + /// + /// 获取或设置是否本企业成员无需报名。 + /// + [Newtonsoft.Json.JsonProperty("no_registration_needed_for_staff")] + [System.Text.Json.Serialization.JsonPropertyName("no_registration_needed_for_staff")] + public bool IsNoRegistrationNeededForStaff { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollImportRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollImportRequest.cs new file mode 100644 index 00000000..d14c63f1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollImportRequest.cs @@ -0,0 +1,58 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/import 接口的请求。 + /// + public class CgibinMeetingEnrollImportRequest : WechatWorkRequest + { + public static class Types + { + public class Enroll + { + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string? UserId { get; set; } + + /// + /// 获取或设置国家地区代码。 + /// + [Newtonsoft.Json.JsonProperty("area")] + [System.Text.Json.Serialization.JsonPropertyName("area")] + public string? AreaCode { get; set; } + + /// + /// 获取或设置手机号码。 + /// + [Newtonsoft.Json.JsonProperty("phone_number")] + [System.Text.Json.Serialization.JsonPropertyName("phone_number")] + public string? PhoneNumber { get; set; } + + /// + /// 获取或设置昵称。 + /// + [Newtonsoft.Json.JsonProperty("nick_name")] + [System.Text.Json.Serialization.JsonPropertyName("nick_name")] + public string? Nickname { get; set; } + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置报名列表。 + /// + [Newtonsoft.Json.JsonProperty("enroll_list")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_list")] + public IList EnrollList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollImportResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollImportResponse.cs new file mode 100644 index 00000000..f13bbd50 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollImportResponse.cs @@ -0,0 +1,70 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/import 接口的响应。 + /// + public class CgibinMeetingEnrollImportResponse : WechatWorkResponse + { + public static class Types + { + public class Enroll + { + /// + /// 获取或设置报名 ID。 + /// + [Newtonsoft.Json.JsonProperty("enroll_id")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_id")] + public string EnrollId { get; set; } = default!; + + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string? UserId { get; set; } + + /// + /// 获取或设置国家地区代码。 + /// + [Newtonsoft.Json.JsonProperty("area")] + [System.Text.Json.Serialization.JsonPropertyName("area")] + public string? AreaCode { get; set; } + + /// + /// 获取或设置手机号码。 + /// + [Newtonsoft.Json.JsonProperty("phone_number")] + [System.Text.Json.Serialization.JsonPropertyName("phone_number")] + public string? PhoneNumber { get; set; } + + /// + /// 获取或设置昵称。 + /// + [Newtonsoft.Json.JsonProperty("nick_name")] + [System.Text.Json.Serialization.JsonPropertyName("nick_name")] + public string? Nickname { get; set; } + + /// + /// 获取或设置报名码。 + /// + [Newtonsoft.Json.JsonProperty("enroll_code")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_code")] + public string? EnrollCode { get; set; } + } + } + + /// + /// 获取或设置成功导入的报名信息条数。 + /// + [Newtonsoft.Json.JsonProperty("total_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_count")] + public int TotalCount { get; set; } + + /// + /// 获取或设置报名列表。 + /// + [Newtonsoft.Json.JsonProperty("enroll_list")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_list")] + public Types.Enroll[] EnrollList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollListRequest.cs new file mode 100644 index 00000000..aae3a7fe --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollListRequest.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/list 接口的请求。 + /// + public class CgibinMeetingEnrollListRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置审批状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int? Status { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("cursor")] + [System.Text.Json.Serialization.JsonPropertyName("cursor")] + public string? Cursor { 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/CgibinMeeting/Enroll/CgibinMeetingEnrollListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollListResponse.cs new file mode 100644 index 00000000..b7c5fb30 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollListResponse.cs @@ -0,0 +1,146 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/list 接口的响应。 + /// + public class CgibinMeetingEnrollListResponse : WechatWorkResponse + { + public static class Types + { + public class Enroll + { + public static class Types + { + public class Answer + { + /// + /// 获取或设置内容列表。 + /// + [Newtonsoft.Json.JsonProperty("answer_content")] + [System.Text.Json.Serialization.JsonPropertyName("answer_content")] + public string[] ContentList { get; set; } = default!; + + /// + /// 获取或设置必填类型。 + /// + [Newtonsoft.Json.JsonProperty("is_required")] + [System.Text.Json.Serialization.JsonPropertyName("is_required")] + public int RequiredType { get; set; } + + /// + /// 获取或设置问题类型。 + /// + [Newtonsoft.Json.JsonProperty("question_type")] + [System.Text.Json.Serialization.JsonPropertyName("question_type")] + public int QuestionType { get; set; } + + /// + /// 获取或设置特殊问题类型。 + /// + [Newtonsoft.Json.JsonProperty("special_type")] + [System.Text.Json.Serialization.JsonPropertyName("special_type")] + public int SpecialType { get; set; } + + /// + /// 获取或设置问题编号。 + /// + [Newtonsoft.Json.JsonProperty("question_num")] + [System.Text.Json.Serialization.JsonPropertyName("question_num")] + public int QuestionNumber { get; set; } + + /// + /// 获取或设置问题标题。 + /// + [Newtonsoft.Json.JsonProperty("question_title")] + [System.Text.Json.Serialization.JsonPropertyName("question_title")] + public string? QuestionTitle { get; set; } + } + } + + /// + /// 获取或设置报名 ID。 + /// + [Newtonsoft.Json.JsonProperty("enroll_id")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_id")] + public string EnrollId { get; set; } = default!; + + /// + /// 获取或设置成员账号。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public string? UserId { get; set; } + + /// + /// 获取或设置临时 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("tmp_openid")] + [System.Text.Json.Serialization.JsonPropertyName("tmp_openid")] + public string? TempOpenId { get; set; } + + /// + /// 获取或设置报名时间字符串(格式:yyyy/MM/dd HH:mm)。 + /// + [Newtonsoft.Json.JsonProperty("enroll_time")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_time")] + public string EnrollTimeString { get; set; } = default!; + + /// + /// 获取或设置报名来源。 + /// + [Newtonsoft.Json.JsonProperty("enroll_source_type")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_source_type")] + public int SourceType { get; set; } + + /// + /// 获取或设置昵称。 + /// + [Newtonsoft.Json.JsonProperty("nick_name")] + [System.Text.Json.Serialization.JsonPropertyName("nick_name")] + public string? Nickname { get; set; } + + /// + /// 获取或设置报名状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置报名码。 + /// + [Newtonsoft.Json.JsonProperty("enroll_code")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_code")] + public string? EnrollCode { get; set; } + + /// + /// 获取或设置答题列表。 + /// + [Newtonsoft.Json.JsonProperty("answer_list")] + [System.Text.Json.Serialization.JsonPropertyName("answer_list")] + public Types.Answer[]? AnswerList { get; set; } + } + } + + /// + /// 获取或设置报名列表。 + /// + [Newtonsoft.Json.JsonProperty("enroll_list")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_list")] + public Types.Enroll[] EnrollList { get; set; } = default!; + + /// + /// 获取或设置是否还有更多。 + /// + [Newtonsoft.Json.JsonProperty("has_more")] + [System.Text.Json.Serialization.JsonPropertyName("has_more")] + public bool HasMore { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdRequest.cs new file mode 100644 index 00000000..fb31db53 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdRequest.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/query_by_tmp_openid 接口的请求。 + /// + public class CgibinMeetingEnrollQueryByTempOpenIdRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置排序规则。 + /// + [Newtonsoft.Json.JsonProperty("sorting_rules")] + [System.Text.Json.Serialization.JsonPropertyName("sorting_rules")] + public int? SortingRule { get; set; } + + /// + /// 获取或设置会议的成员临时 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("tmp_openid_list")] + [System.Text.Json.Serialization.JsonPropertyName("tmp_openid_list")] + public IList TempOpenIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdResponse.cs new file mode 100644 index 00000000..9abdfd96 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdResponse.cs @@ -0,0 +1,35 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/query_by_tmp_openid 接口的响应。 + /// + public class CgibinMeetingEnrollQueryByTempOpenIdResponse : WechatWorkResponse + { + public static class Types + { + public class Result + { + /// + /// 获取或设置会议的成员临时 ID。 + /// + [Newtonsoft.Json.JsonProperty("tmp_openid")] + [System.Text.Json.Serialization.JsonPropertyName("tmp_openid")] + public string TempOpenId { get; set; } = default!; + + /// + /// 获取或设置报名 ID。 + /// + [Newtonsoft.Json.JsonProperty("enroll_id")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_id")] + public string EnrollId { get; set; } = default!; + } + } + + /// + /// 获取或设置结果列表。 + /// + [Newtonsoft.Json.JsonProperty("enroll_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("enroll_id_list")] + public Types.Result[] ResultList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigRequest.cs new file mode 100644 index 00000000..a08c0fce --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigRequest.cs @@ -0,0 +1,99 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/set_config 接口的请求。 + /// + public class CgibinMeetingEnrollSetConfigRequest : WechatWorkRequest + { + public static class Types + { + public class Question + { + public static class Types + { + public class Option + { + /// + /// 获取或设置选项内容。 + /// + [Newtonsoft.Json.JsonProperty("content")] + [System.Text.Json.Serialization.JsonPropertyName("content")] + public string? Content { get; set; } + } + } + + /// + /// 获取或设置必填类型。 + /// + [Newtonsoft.Json.JsonProperty("is_required")] + [System.Text.Json.Serialization.JsonPropertyName("is_required")] + public int? RequiredType { get; set; } + + /// + /// 获取或设置问题类型。 + /// + [Newtonsoft.Json.JsonProperty("question_type")] + [System.Text.Json.Serialization.JsonPropertyName("question_type")] + public int? QuestionType { get; set; } + + /// + /// 获取或设置特殊问题类型。 + /// + [Newtonsoft.Json.JsonProperty("special_type")] + [System.Text.Json.Serialization.JsonPropertyName("special_type")] + public int? SpecialType { get; set; } + + /// + /// 获取或设置问题标题。 + /// + [Newtonsoft.Json.JsonProperty("question_title")] + [System.Text.Json.Serialization.JsonPropertyName("question_title")] + public string? QuestionTitle { get; set; } + + /// + /// 获取或设置选项列表。 + /// + [Newtonsoft.Json.JsonProperty("option_list")] + [System.Text.Json.Serialization.JsonPropertyName("option_list")] + public IList? OptionList { get; set; } + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置审批类型。 + /// + [Newtonsoft.Json.JsonProperty("approve_type")] + [System.Text.Json.Serialization.JsonPropertyName("approve_type")] + public int? ApproveType { get; set; } + + /// + /// 获取或设置收集问题类型。 + /// + [Newtonsoft.Json.JsonProperty("is_collect_question")] + [System.Text.Json.Serialization.JsonPropertyName("is_collect_question")] + public int? CollectQuestionType { get; set; } + + /// + /// 获取或设置问题列表。 + /// + [Newtonsoft.Json.JsonProperty("question_list")] + [System.Text.Json.Serialization.JsonPropertyName("question_list")] + public IList? QuestionList { get; set; } + + /// + /// 获取或设置是否本企业成员无需报名。 + /// + [Newtonsoft.Json.JsonProperty("no_registration_needed_for_staff")] + [System.Text.Json.Serialization.JsonPropertyName("no_registration_needed_for_staff")] + public bool? IsNoRegistrationNeededForStaff { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigResponse.cs new file mode 100644 index 00000000..af96315d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/enroll/set_config 接口的响应。 + /// + public class CgibinMeetingEnrollSetConfigResponse : WechatWorkResponse + { + /// + /// 获取或设置报名问题数量。 + /// + [Newtonsoft.Json.JsonProperty("question_count")] + [System.Text.Json.Serialization.JsonPropertyName("question_count")] + public int QuestionCount { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveRequest.json new file mode 100644 index 00000000..747ee195 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveRequest.json @@ -0,0 +1,7 @@ +{ + "meetingid": "meetingid11234", + "action": 1, + "enroll_id_list": [ + "mexxxxxxx" + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveResponse.json new file mode 100644 index 00000000..cbc3eabd --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollApproveResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "handled_count": 10 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteRequest.json new file mode 100644 index 00000000..2100c5d1 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteRequest.json @@ -0,0 +1,8 @@ +{ + "meetingid": "meetingid11234", + "enroll_id_list": [ + { + "enroll_id": "123456" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteResponse.json new file mode 100644 index 00000000..25adf6aa --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollDeleteResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "total_count": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigRequest.json new file mode 100644 index 00000000..c7a936b5 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigRequest.json @@ -0,0 +1,3 @@ +{ + "meetingid": "meetingid11234" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigResponse.json new file mode 100644 index 00000000..19aa7239 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollGetConfigResponse.json @@ -0,0 +1,20 @@ +{ + "errcode": 0, + "errmsg": "ok", + "approve_type": 1, + "is_collect_question": 1, + "no_registration_needed_for_staff": true, + "question_list": [ + { + "is_required": 1, + "question_type": 1, + "question_title": "acd", + "special_type": 1, + "option_list": [ + { + "content": "asr" + } + ] + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollImportRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollImportRequest.json new file mode 100644 index 00000000..2949c083 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollImportRequest.json @@ -0,0 +1,11 @@ +{ + "meetingid": "meetingid11234", + "enroll_list": [ + { + "userid": "USERID", + "area": "86", + "phone_number": "13333333333", + "nick_name": "NICKNAME" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollImportResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollImportResponse.json new file mode 100644 index 00000000..38d10ab6 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollImportResponse.json @@ -0,0 +1,15 @@ +{ + "errcode": 0, + "errmsg": "ok", + "total_count": 1, + "enroll_list": [ + { + "enroll_id": "mexxxxx", + "userid": "USERID", + "area": "86", + "phone_number": "13333333333", + "nick_name": "NICKNAME", + "enroll_code": "CODE" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollListRequest.json new file mode 100644 index 00000000..d95cee29 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollListRequest.json @@ -0,0 +1,6 @@ +{ + "meetingid": "meetingid11234", + "status": 0, + "cursor": "CURSOR", + "limit": 10 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollListResponse.json new file mode 100644 index 00000000..f35c524d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollListResponse.json @@ -0,0 +1,31 @@ +{ + "errcode": 0, + "errmsg": "ok", + "has_more": false, + "next_cursor": "CURSOR", + "enroll_list": [ + { + "enroll_id": "mexxxxxx", + "enroll_time": "2023/03/23 14:00", + "enroll_source_type": 1, + "nick_name": "NICKNAME", + "status": 1, + "userid": "USERID", + "tmp_openid": "TMP_OPENID", + "enroll_code": "CODE", + "answer_list": [ + { + "answer_content": [ + "CONTENT1", + "CONTENT2" + ], + "is_required": 1, + "question_num": 10, + "question_title": "TITLE", + "question_type": 1, + "special_type": 1 + } + ] + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdRequest.json new file mode 100644 index 00000000..1771050b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdRequest.json @@ -0,0 +1,8 @@ +{ + "meetingid": "meetingid11234", + "sorting_rules": 1, + "tmp_openid_list": [ + "msaaaaaaaa", + "msbbbbbbbb" + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdResponse.json new file mode 100644 index 00000000..5f2704c0 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollQueryByTempOpenIdResponse.json @@ -0,0 +1,14 @@ +{ + "errcode": 0, + "errmsg": "ok", + "enroll_id_list": [ + { + "tmp_openid": "msaaaaaaaa", + "enroll_id": "mexxxxxxx" + }, + { + "tmp_openid": "msbbbbbbbb", + "enroll_id": "meyyyyyyy" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigRequest.json new file mode 100644 index 00000000..4a7394e4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigRequest.json @@ -0,0 +1,19 @@ +{ + "meetingid": "MEETINGID1", + "approve_type": 1, + "is_collect_question": 1, + "no_registration_needed_for_staff": true, + "question_list": [ + { + "is_required": 1, + "question_type": 1, + "question_title": "acd", + "special_type": 1, + "option_list": [ + { + "content": "asr" + } + ] + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigResponse.json new file mode 100644 index 00000000..3a811a80 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Enroll/CgibinMeetingEnrollSetConfigResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "question_count": 12 +}