From 98e48e29b68c3f95fbe48cacbaa3461cd41c7b10 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 14 Jun 2023 16:35:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(work):=20=E9=9A=8F=E5=AE=98=E6=96=B9?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BC=9A=E8=AE=AE=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...orkClientExecuteCgibinMeetingExtensions.cs | 10 +- .../CgibinLiving/CgibinLivingModifyRequest.cs | 19 +- .../CgibinMeetingCancelRequest.cs | 9 +- .../CgibinMeetingCreateRequest.cs | 155 ++++++++++- .../CgibinMeetingGetInfoRequest.cs | 11 +- .../CgibinMeetingGetInfoResponse.cs | 255 +++++++++++++++++- .../CgibinMeetingUpdateRequest.cs | 23 +- .../CgibinMeetingCancelRequest.json | 5 +- .../CgibinMeetingCreateRequest.json | 36 ++- .../CgibinMeetingGetInfoRequest.json | 5 +- .../CgibinMeetingGetInfoResponse.json | 45 +++- .../CgibinMeetingUpdateRequest.json | 36 ++- 12 files changed, 562 insertions(+), 47 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs index 96848a79..820201d7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs @@ -11,8 +11,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work { /// /// 异步调用 [POST] /cgi-bin/meeting/create 接口。 - /// REF: https://developer.work.weixin.qq.com/document/path/93627 /// REF: https://developer.work.weixin.qq.com/document/path/93706 + /// REF: https://developer.work.weixin.qq.com/document/path/98148 /// /// /// @@ -32,8 +32,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work /// /// 异步调用 [POST] /cgi-bin/meeting/update 接口。 - /// REF: https://developer.work.weixin.qq.com/document/path/93631 /// REF: https://developer.work.weixin.qq.com/document/path/93710 + /// REF: https://developer.work.weixin.qq.com/document/path/98154 /// /// /// @@ -53,8 +53,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work /// /// 异步调用 [POST] /cgi-bin/meeting/cancel 接口。 - /// REF: https://developer.work.weixin.qq.com/document/path/93630 /// REF: https://developer.work.weixin.qq.com/document/path/93709 + /// REF: https://developer.work.weixin.qq.com/document/path/98153 /// /// /// @@ -74,8 +74,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work /// /// 异步调用 [POST] /cgi-bin/meeting/get_info 接口。 - /// REF: https://developer.work.weixin.qq.com/document/path/93629 /// REF: https://developer.work.weixin.qq.com/document/path/93708 + /// REF: https://developer.work.weixin.qq.com/document/path/98149 /// /// /// @@ -95,8 +95,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work /// /// 异步调用 [POST] /cgi-bin/meeting/get_user_meetingid 接口。 - /// REF: https://developer.work.weixin.qq.com/document/path/93628 /// REF: https://developer.work.weixin.qq.com/document/path/93707 + /// REF: https://developer.work.weixin.qq.com/document/path/98714 /// /// /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyRequest.cs index 1cb84da9..a5673496 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingModifyRequest.cs @@ -1,4 +1,6 @@ -namespace SKIT.FlurlHttpClient.Wechat.Work.Models +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models { /// /// 表示 [POST] /cgi-bin/living/modify 接口的请求。 @@ -7,8 +9,21 @@ { public static class Types { - public class Attendee : CgibinMeetingCreateRequest.Types.Attendee + public class Attendee { + /// + /// 获取或设置参与者成员账号列表。 + /// + [Newtonsoft.Json.JsonProperty("userid")] + [System.Text.Json.Serialization.JsonPropertyName("userid")] + public IList? UserIdList { get; set; } + + /// + /// 获取或设置设备序列号列表。 + /// + [Newtonsoft.Json.JsonProperty("device_sn")] + [System.Text.Json.Serialization.JsonPropertyName("device_sn")] + public IList? DeviceSerialNumberList { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs index 428c0b5c..f212f3aa 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.Work.Models +namespace SKIT.FlurlHttpClient.Wechat.Work.Models { /// /// 表示 [POST] /cgi-bin/meeting/cancel 接口的请求。 @@ -11,5 +11,12 @@ [Newtonsoft.Json.JsonProperty("meetingid")] [System.Text.Json.Serialization.JsonPropertyName("meetingid")] public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置周期性子会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("sub_meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_meetingid")] + public string? SubMeetingId { get; set; } = string.Empty; } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateRequest.cs index 77eef551..db4c596a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCreateRequest.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; namespace SKIT.FlurlHttpClient.Wechat.Work.Models { @@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models { public static class Types { - public class Attendee + public class Invitee { /// /// 获取或设置参与者成员账号列表。 @@ -26,6 +26,30 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models public IList? DeviceSerialNumberList { get; set; } } + public class Guest + { + /// + /// 获取或设置国家地区代码。 + /// + [Newtonsoft.Json.JsonProperty("area")] + [System.Text.Json.Serialization.JsonPropertyName("area")] + public string AreaCode { get; set; } = string.Empty; + + /// + /// 获取或设置手机号码。 + /// + [Newtonsoft.Json.JsonProperty("phone_number")] + [System.Text.Json.Serialization.JsonPropertyName("phone_number")] + public string PhoneNumber { get; set; } = string.Empty; + + /// + /// 获取或设置会议嘉宾姓名。 + /// + [Newtonsoft.Json.JsonProperty("guest_name")] + [System.Text.Json.Serialization.JsonPropertyName("guest_name")] + public string? GuestName { get; set; } + } + public class Settings { public static class Types @@ -86,6 +110,20 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("enable_enter_mute")] public int? EnterMuteMode { get; set; } + /// + /// 获取或设置允许参会者取消静音。 + /// + [Newtonsoft.Json.JsonProperty("allow_unmute_self")] + [System.Text.Json.Serialization.JsonPropertyName("allow_unmute_self")] + public bool? AllowUnmuteSelf { get; set; } + + /// + /// 获取或设置是否设置全体静音。 + /// + [Newtonsoft.Json.JsonProperty("mute_all")] + [System.Text.Json.Serialization.JsonPropertyName("mute_all")] + public bool? IsMuteAll { get; set; } + /// /// 获取或设置是否开启屏幕水印。 /// @@ -93,6 +131,69 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("enable_screen_watermark")] public bool? EnableScreenWatermark { get; set; } + /// + /// 获取或设置水印样式。 + /// + [Newtonsoft.Json.JsonProperty("watermark_type")] + [System.Text.Json.Serialization.JsonPropertyName("watermark_type")] + public int? WatermarkType { get; set; } + + /// + /// 获取或设置自动会议录制类型。 + /// + [Newtonsoft.Json.JsonProperty("auto_record_type")] + [System.Text.Json.Serialization.JsonPropertyName("auto_record_type")] + public string? AutoRecordType { get; set; } + + /// + /// 获取或设置是否当有参会成员入会时立即开启云录制。 + /// + [Newtonsoft.Json.JsonProperty("attendee_join_auto_record")] + [System.Text.Json.Serialization.JsonPropertyName("attendee_join_auto_record")] + public bool? IsAttendeeJoinAutoRecord { get; set; } + + /// + /// 获取或设置是否允许主持人暂停或者停止云录制。 + /// + [Newtonsoft.Json.JsonProperty("enable_host_pause_auto_record")] + [System.Text.Json.Serialization.JsonPropertyName("enable_host_pause_auto_record")] + public bool? EnableHostPauseAutoRecord { get; set; } + + /// + /// 获取或设置是否开启同声传译。 + /// + [Newtonsoft.Json.JsonProperty("enable_interpreter")] + [System.Text.Json.Serialization.JsonPropertyName("enable_interpreter")] + public bool? EnableInterpreter { get; set; } + + /// + /// 获取或设置是否允许成员上传文档。 + /// + [Newtonsoft.Json.JsonProperty("enable_doc_upload_permission")] + [System.Text.Json.Serialization.JsonPropertyName("enable_doc_upload_permission")] + public bool? EnableDocumentUploadPermission { get; set; } + + /// + /// 获取或设置是否激活报名。 + /// + [Newtonsoft.Json.JsonProperty("enable_enroll")] + [System.Text.Json.Serialization.JsonPropertyName("enable_enroll")] + public bool? EnableEnroll { get; set; } + + /// + /// 获取或设置是否开启主持人密钥。 + /// + [Newtonsoft.Json.JsonProperty("enable_host_key")] + [System.Text.Json.Serialization.JsonPropertyName("enable_host_key")] + public bool? EnableHostKey { get; set; } + + /// + /// 获取或设置主持人密钥。 + /// + [Newtonsoft.Json.JsonProperty("host_key")] + [System.Text.Json.Serialization.JsonPropertyName("host_key")] + public string? HostKey { get; set; } + /// /// 获取或设置会议开始提醒范围。 /// @@ -133,6 +234,29 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("repeat_type")] public int? RepeatType { get; set; } + /// + /// 获取或设置是否自定义重复设置。 + /// + [Newtonsoft.Json.JsonProperty("is_custom_repeat")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_custom_repeat")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))] + public bool? IsCustomRepeat { get; set; } + + /// + /// 获取或设置结束重复类型。 + /// + [Newtonsoft.Json.JsonProperty("repeat_until_type")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_until_type")] + public int? RepeatUntilType { get; set; } + + /// + /// 获取或设置周期会议限定次数。 + /// + [Newtonsoft.Json.JsonProperty("repeat_until_count")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_until_count")] + public int? RepeatUntilCount { get; set; } + /// /// 获取或设置重复结束时间戳。 /// @@ -147,6 +271,20 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [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? RepeatDaysOfWeek { get; set; } + + /// + /// 获取或设置每月哪几天重复。 + /// + [Newtonsoft.Json.JsonProperty("repeat_day_of_month")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_day_of_month")] + public IList? RepeatDaysOfMonth { get; set; } + /// /// 获取或设置会议开始前多久提醒(单位:秒)。 /// @@ -208,9 +346,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models /// /// 获取或设置参与者信息。 /// - [Newtonsoft.Json.JsonProperty("attendees")] - [System.Text.Json.Serialization.JsonPropertyName("attendees")] - public Types.Attendee? Attendee { get; set; } + [Newtonsoft.Json.JsonProperty("invitees")] + [System.Text.Json.Serialization.JsonPropertyName("invitees")] + public Types.Invitee? Invitee { get; set; } + + /// + /// 获取或设置会议嘉宾列表。 + /// + [Newtonsoft.Json.JsonProperty("guests")] + [System.Text.Json.Serialization.JsonPropertyName("guests")] + public IList? GuestList { get; set; } /// /// 获取或设置会议设置信息。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoRequest.cs index 433fa218..4b5c071a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.Work.Models +namespace SKIT.FlurlHttpClient.Wechat.Work.Models { /// /// 表示 [POST] /cgi-bin/meeting/get_info 接口的请求。 @@ -10,6 +10,13 @@ /// [Newtonsoft.Json.JsonProperty("meetingid")] [System.Text.Json.Serialization.JsonPropertyName("meetingid")] - public string MeetingId { get; set; } = string.Empty; + public string? MeetingId { get; set; } + + /// + /// 获取或设置入会码。 + /// + [Newtonsoft.Json.JsonProperty("meeting_code")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_code")] + public string? MeetingCode { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoResponse.cs index 93881c6a..c8c5518f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingGetInfoResponse.cs @@ -141,6 +141,30 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models public Types.Device[] DeviceList { get; set; } = default!; } + public class Guest + { + /// + /// 获取或设置国家地区代码。 + /// + [Newtonsoft.Json.JsonProperty("area")] + [System.Text.Json.Serialization.JsonPropertyName("area")] + public string AreaCode { get; set; } = default!; + + /// + /// 获取或设置手机号码。 + /// + [Newtonsoft.Json.JsonProperty("phone_number")] + [System.Text.Json.Serialization.JsonPropertyName("phone_number")] + public string PhoneNumber { get; set; } = default!; + + /// + /// 获取或设置会议嘉宾姓名。 + /// + [Newtonsoft.Json.JsonProperty("guest_name")] + [System.Text.Json.Serialization.JsonPropertyName("guest_name")] + public string? GuestName { get; set; } + } + public class Settings { public static class Types @@ -166,6 +190,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models } } + /// + /// 获取或设置是否开启入会密码。 + /// + [Newtonsoft.Json.JsonProperty("need_password")] + [System.Text.Json.Serialization.JsonPropertyName("need_password")] + public bool EnablePassword { get; set; } + /// /// 获取或设置入会密码。 /// @@ -194,6 +225,27 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("allow_external_user")] public bool AllowExternalUser { get; set; } + /// + /// 获取或设置成员入会时静音模式。 + /// + [Newtonsoft.Json.JsonProperty("enable_enter_mute")] + [System.Text.Json.Serialization.JsonPropertyName("enable_enter_mute")] + public int EnterMuteMode { get; set; } + + /// + /// 获取或设置允许参会者取消静音。 + /// + [Newtonsoft.Json.JsonProperty("allow_unmute_self")] + [System.Text.Json.Serialization.JsonPropertyName("allow_unmute_self")] + public bool AllowUnmuteSelf { get; set; } + + /// + /// 获取或设置是否设置全体静音。 + /// + [Newtonsoft.Json.JsonProperty("mute_all")] + [System.Text.Json.Serialization.JsonPropertyName("mute_all")] + public bool IsMuteAll { get; set; } + /// /// 获取或设置是否开启屏幕水印。 /// @@ -202,11 +254,67 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models public bool EnableScreenWatermark { get; set; } /// - /// 获取或设置成员入会时静音模式。 + /// 获取或设置水印样式。 /// - [Newtonsoft.Json.JsonProperty("enable_enter_mute")] - [System.Text.Json.Serialization.JsonPropertyName("enable_enter_mute")] - public int EnterMuteMode { get; set; } + [Newtonsoft.Json.JsonProperty("watermark_type")] + [System.Text.Json.Serialization.JsonPropertyName("watermark_type")] + public int WatermarkType { get; set; } + + /// + /// 获取或设置自动会议录制类型。 + /// + [Newtonsoft.Json.JsonProperty("auto_record_type")] + [System.Text.Json.Serialization.JsonPropertyName("auto_record_type")] + public string AutoRecordType { get; set; } = default!; + + /// + /// 获取或设置是否当有参会成员入会时立即开启云录制。 + /// + [Newtonsoft.Json.JsonProperty("participant_join_auto_record")] + [System.Text.Json.Serialization.JsonPropertyName("participant_join_auto_record")] + public bool IsAttendeeJoinAutoRecord { get; set; } + + /// + /// 获取或设置是否允许主持人暂停或者停止云录制。 + /// + [Newtonsoft.Json.JsonProperty("enable_host_pause_auto_record")] + [System.Text.Json.Serialization.JsonPropertyName("enable_host_pause_auto_record")] + public bool EnableHostPauseAutoRecord { get; set; } + + /// + /// 获取或设置是否开启同声传译。 + /// + [Newtonsoft.Json.JsonProperty("enable_interpreter")] + [System.Text.Json.Serialization.JsonPropertyName("enable_interpreter")] + public bool EnableInterpreter { get; set; } + + /// + /// 获取或设置是否允许成员上传文档。 + /// + [Newtonsoft.Json.JsonProperty("enable_doc_upload_permission")] + [System.Text.Json.Serialization.JsonPropertyName("enable_doc_upload_permission")] + public bool EnableDocumentUploadPermission { get; set; } + + /// + /// 获取或设置是否激活报名。 + /// + [Newtonsoft.Json.JsonProperty("enable_enroll")] + [System.Text.Json.Serialization.JsonPropertyName("enable_enroll")] + public bool EnableEnroll { get; set; } + + /// + /// 获取或设置是否开启主持人密钥。 + /// + [Newtonsoft.Json.JsonProperty("enable_host_key")] + [System.Text.Json.Serialization.JsonPropertyName("enable_host_key")] + public bool EnableHostKey { get; set; } + + /// + /// 获取或设置主持人密钥。 + /// + [Newtonsoft.Json.JsonProperty("host_key")] + [System.Text.Json.Serialization.JsonPropertyName("host_key")] + public string? HostKey { get; set; } /// /// 获取或设置会议开始提醒范围。 @@ -222,6 +330,20 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("hosts")] public Types.Host? Host { get; set; } + /// + /// 获取或设置会议当前主持人信息。 + /// + [Newtonsoft.Json.JsonProperty("current_hosts")] + [System.Text.Json.Serialization.JsonPropertyName("current_hosts")] + public Types.Host? CurrentHost { get; set; } + + /// + /// 获取或设置会议联席主持人信息。 + /// + [Newtonsoft.Json.JsonProperty("co_hosts")] + [System.Text.Json.Serialization.JsonPropertyName("co_hosts")] + public Types.Host? CoHost { get; set; } + /// /// 获取或设置响铃用户信息。 /// @@ -236,10 +358,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models /// 获取或设置是否重复会议。 /// [Newtonsoft.Json.JsonProperty("is_repeat")] - [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))] [System.Text.Json.Serialization.JsonPropertyName("is_repeat")] - [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))] - public bool? IsRepeat { get; set; } + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))] + public bool IsRepeat { get; set; } /// /// 获取或设置重复类型。 @@ -248,6 +370,29 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("repeat_type")] public int? RepeatType { get; set; } + /// + /// 获取或设置是否自定义重复设置。 + /// + [Newtonsoft.Json.JsonProperty("is_custom_repeat")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_custom_repeat")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))] + public bool IsCustomRepeat { get; set; } + + /// + /// 获取或设置结束重复类型。 + /// + [Newtonsoft.Json.JsonProperty("repeat_until_type")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_until_type")] + public int? RepeatUntilType { get; set; } + + /// + /// 获取或设置周期会议限定次数。 + /// + [Newtonsoft.Json.JsonProperty("repeat_until_count")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_until_count")] + public int? RepeatUntilCount { get; set; } + /// /// 获取或设置重复结束时间戳。 /// @@ -262,6 +407,20 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [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[]? RepeatDaysOfWeek { get; set; } + + /// + /// 获取或设置每月哪几天重复。 + /// + [Newtonsoft.Json.JsonProperty("repeat_day_of_month")] + [System.Text.Json.Serialization.JsonPropertyName("repeat_day_of_month")] + public int[]? RepeatDaysOfMonth { get; set; } + /// /// 获取或设置会议开始前多久提醒(单位:秒)。 /// @@ -269,6 +428,37 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("remind_before")] public int[]? RemindBeforeEventTimeList { get; set; } } + + public class SubMeeting + { + /// + /// 获取或设置子会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("sub_meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_meetingid")] + public string SubMeetingId { get; set; } = default!; + + /// + /// 获取或设置状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { 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; } + } } /// @@ -320,6 +510,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("status")] public int Status { get; set; } + /// + /// 获取或设置会议类型。 + /// + [Newtonsoft.Json.JsonProperty("meeting_type")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_type")] + public int MeetingType { get; set; } + /// /// 获取或设置会议描述。 /// @@ -348,6 +545,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [System.Text.Json.Serialization.JsonPropertyName("attendees")] public Types.Attendee Attendee { get; set; } = default!; + /// + /// 获取或设置会议嘉宾列表。 + /// + [Newtonsoft.Json.JsonProperty("guests")] + [System.Text.Json.Serialization.JsonPropertyName("guests")] + public Types.Guest[]? GuestList { get; set; } + /// /// 获取或设置会议设置信息。 /// @@ -375,5 +579,42 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models [Newtonsoft.Json.JsonProperty("meeting_link")] [System.Text.Json.Serialization.JsonPropertyName("meeting_link")] public string MeetingLink { get; set; } = default!; + + /// + /// 获取或设置是否有投票。 + /// + [Newtonsoft.Json.JsonProperty("has_vote")] + [System.Text.Json.Serialization.JsonPropertyName("has_vote")] + public bool HasVote { get; set; } + + /// + /// 获取或设置子会议列表。 + /// + [Newtonsoft.Json.JsonProperty("sub_meetings")] + [System.Text.Json.Serialization.JsonPropertyName("sub_meetings")] + public Types.SubMeeting[]? SubMeetingList { get; set; } + + /// + /// 获取或设置是否还有更多子会议特例。 + /// + [Newtonsoft.Json.JsonProperty("has_more_sub_meeting")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("has_more_sub_meeting")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))] + public bool HasMoreSubMeeting { get; set; } + + /// + /// 获取或设置剩余子会议场数。 + /// + [Newtonsoft.Json.JsonProperty("remain_sub_meetings")] + [System.Text.Json.Serialization.JsonPropertyName("remain_sub_meetings")] + public int? RemainSubMeetingCount { get; set; } + + /// + /// 获取或设置当前子会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("current_sub_meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("current_sub_meetingid")] + public string? CurrentSubMeetingId { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateRequest.cs index e48e619b..0aa7c88b 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingUpdateRequest.cs @@ -1,4 +1,6 @@ -namespace SKIT.FlurlHttpClient.Wechat.Work.Models +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models { /// /// 表示 [POST] /cgi-bin/meeting/update 接口的请求。 @@ -7,7 +9,11 @@ { public static class Types { - public class Attendee : CgibinMeetingCreateRequest.Types.Attendee + public class Invitee : CgibinMeetingCreateRequest.Types.Invitee + { + } + + public class Guest : CgibinMeetingCreateRequest.Types.Guest { } @@ -96,9 +102,16 @@ /// /// 获取或设置参与者信息。 /// - [Newtonsoft.Json.JsonProperty("attendees")] - [System.Text.Json.Serialization.JsonPropertyName("attendees")] - public Types.Attendee? Attendee { get; set; } + [Newtonsoft.Json.JsonProperty("invitees")] + [System.Text.Json.Serialization.JsonPropertyName("invitees")] + public Types.Invitee? Invitee { get; set; } + + /// + /// 获取或设置会议嘉宾列表。 + /// + [Newtonsoft.Json.JsonProperty("guests")] + [System.Text.Json.Serialization.JsonPropertyName("guests")] + public IList? GuestList { get; set; } /// /// 获取或设置会议设置信息。 diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingCancelRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingCancelRequest.json index 16516f9f..89ba2eaf 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingCancelRequest.json +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingCancelRequest.json @@ -1,3 +1,4 @@ -{ - "meetingid": "XXXXXXXXX" +{ + "meetingid": "XXXXXXXXX", + "sub_meetingid": "sub_meetingid1111" } diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingCreateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingCreateRequest.json index 0c3279da..c7279c59 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingCreateRequest.json +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingCreateRequest.json @@ -1,4 +1,4 @@ -{ +{ "admin_userid": "zhangsan", "title": "新建会议", "meeting_start": 1600000000, @@ -6,30 +6,52 @@ "description": "新建会议描述", "location": "广州媒体港", "agentid": 1000014, - "attendees": { - "userid": ["lisi", "wangwu"] + "invitees": { + "userid": [ "lisi", "wangwu" ] }, + "guests": [ + { + "area": "86", + "phone_number": "135012938457", + "guest_name": "fifa" + } + ], "settings": { - "remind_scope": 1, "password": "1234", "enable_waiting_room": false, "allow_enter_before_host": true, "enable_enter_mute": 1, + "allow_unmute_self": true, + "mute_all": false, "allow_external_user": false, "enable_screen_watermark": false, + "watermark_type": 1, + "auto_record_type": "none", + "attendee_join_auto_record": false, + "enable_host_pause_auto_record": false, + "enable_interpreter": true, + "enable_enroll": true, + "enable_host_key": true, + "host_key": "meetinghostkey", "hosts": { - "userid": ["lisi", "wangwu"] + "userid": [ "lisi", "wangwu" ] }, + "remind_scope": 1, "ring_users": { - "userid": ["zhangsan", "lis"] + "userid": [ "zhangsan", "lis" ] } }, "cal_id": "wcjgewCwAAqeJcPI1d8Pwbjt7nttzAAA", "reminders": { "is_repeat": 1, "repeat_type": 0, + "is_custom_repeat": 1, + "repeat_until_type": 1, + "repeat_until_count": 10, "repeat_until": 1606976813, "repeat_interval": 1, - "remind_before": [0, 900] + "repeat_day_of_week": [ 3, 7 ], + "repeat_day_of_month": [ 10, 21 ], + "remind_before": [ 0, 900 ] } } diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingGetInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingGetInfoRequest.json index 16516f9f..cf8e3796 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingGetInfoRequest.json +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingGetInfoRequest.json @@ -1,3 +1,4 @@ -{ - "meetingid": "XXXXXXXXX" +{ + "meetingid": "XXXXXXXXX", + "meeting_code": "meetingcodexxx" } diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingGetInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingGetInfoResponse.json index 7958a30b..9f3f8f38 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingGetInfoResponse.json +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingGetInfoResponse.json @@ -9,6 +9,7 @@ "location": "广州媒体港", "main_department": 1, "status": 1, + "meeting_type": 1, "attendees": { "member": [ { @@ -49,15 +50,31 @@ }, "settings": { "remind_scope": 4, + "need_password": true, "password": "1234", "enable_waiting_room": false, "allow_enter_before_host": true, "enable_enter_mute": 1, + "allow_unmute_self": true, "allow_external_user": false, "enable_screen_watermark": false, + "watermark_type": 1, + "auto_record_type": "none", + "participant_join_auto_record": false, + "enable_host_pause_auto_record": false, + "enable_doc_upload_permission": true, + "enable_enroll": true, + "enable_host_key": true, + "host_key": "meetinghostkey", "hosts": { "userid": [ "lisi", "wangwu" ] }, + "current_hosts": { + "userid": [ "wangwu", "lisi" ] + }, + "co_hosts": { + "userid": [ "zhangsan", "lisi" ] + }, "ring_users": { "userid": [ "zhangsan", "lis" ] } @@ -66,10 +83,34 @@ "reminders": { "is_repeat": 1, "repeat_type": 0, + "repeat_until_type": 1, + "repeat_until_count": 10, "repeat_until": 1606976813, "repeat_interval": 1, - "remind_before": [ 5, 10 ] + "is_custom_repeat": 1, + "repeat_day_of_week": [ 3, 7 ], + "repeat_day_of_month": [ 10, 21 ], + "remind_before": [ 0, 900 ] }, "meeting_code": "123456789", - "meeting_link": "https://wecomm.com/znigeot" + "meeting_link": "https://wecomm.com/znigeot", + "has_vote": true, + "has_more_sub_meeting": 1, + "remain_sub_meetings": 2, + "current_sub_meetingid": "cursubmeetingid", + "sub_meetings": [ + { + "sub_meetingid": "sub_meetingid", + "status": 0, + "start_time": 16888888888, + "end_time": 179888888888 + } + ], + "guests": [ + { + "area": "86", + "phone_number": "135123454321", + "guest_name": "lisi" + } + ] } diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingUpdateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingUpdateRequest.json index 95b8d89b..80ab4e9e 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingUpdateRequest.json +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/CgibinMeetingUpdateRequest.json @@ -1,4 +1,4 @@ -{ +{ "meetingid": "hyxxx", "title": "新建会议", "meeting_start": 1600000000, @@ -6,30 +6,52 @@ "description": "新建会议描述", "location": "广州媒体港", "agentid": 1000014, - "attendees": { - "userid": ["lisi", "wangwu"] + "invitees": { + "userid": [ "lisi", "wangwu" ] }, + "guests": [ + { + "area": "86", + "phone_number": "135012938457", + "guest_name": "fifa" + } + ], "settings": { - "remind_scope": 1, "password": "1234", "enable_waiting_room": false, "allow_enter_before_host": true, "enable_enter_mute": 1, + "allow_unmute_self": true, + "mute_all": false, "allow_external_user": false, "enable_screen_watermark": false, + "watermark_type": 1, + "auto_record_type": "none", + "attendee_join_auto_record": false, + "enable_host_pause_auto_record": false, + "enable_interpreter": true, + "enable_enroll": true, + "enable_host_key": true, + "host_key": "meetinghostkey", "hosts": { - "userid": ["lisi", "wangwu"] + "userid": [ "lisi", "wangwu" ] }, + "remind_scope": 1, "ring_users": { - "userid": ["zhangsan", "lis"] + "userid": [ "zhangsan", "lis" ] } }, "cal_id": "wcjgewCwAAqeJcPI1d8Pwbjt7nttzAAA", "reminders": { "is_repeat": 1, "repeat_type": 0, + "is_custom_repeat": 1, + "repeat_until_type": 1, + "repeat_until_count": 10, "repeat_until": 1606976813, "repeat_interval": 1, - "remind_before": [0, 900] + "repeat_day_of_week": [ 3, 7 ], + "repeat_day_of_month": [ 10, 21 ], + "remind_before": [ 0, 900 ] } }