diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs index 6c2847aa..55fc8fa2 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs @@ -741,5 +741,247 @@ namespace SKIT.FlurlHttpClient.Wechat.Work return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion + + #region Rooms + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/book 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98791 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsBookAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsBookRequest 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", "rooms", "book") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/release 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98792 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsReleaseAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsReleaseRequest 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", "rooms", "release") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/list 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98795 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsListAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsListRequest 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", "rooms", "list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/get_info 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98793 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsGetInfoAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsGetInfoRequest 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", "rooms", "get_info") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/get_config 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98802 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsGetConfigAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsGetConfigRequest 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", "rooms", "get_config") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/list_meetings 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98796 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsListMeetingsAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsListMeetingsRequest 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", "rooms", "list_meetings") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/list_devices 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98798 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsListDevicesAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsListDevicesRequest 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", "rooms", "list_devices") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/list_controllers 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98799 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsListControllersAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsListControllersRequest 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", "rooms", "list_controllers") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/get_inventory 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98809 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsGetInventoryAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsGetInventoryRequest 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", "rooms", "get_inventory") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/call 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98804 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsCallAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsCallRequest 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", "rooms", "call") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/cancel_call 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98805 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsCancelCallAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsCancelCallRequest 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", "rooms", "cancel_call") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /cgi-bin/meeting/rooms/get_response_status 接口。 + /// REF: https://developer.work.weixin.qq.com/document/path/98806 + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMeetingRoomsGetResponseStatusAsync(this WechatWorkClient client, Models.CgibinMeetingRoomsGetResponseStatusRequest 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", "rooms", "get_response_status") + .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/CgibinMeetingCancelRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs index 59a2a0c1..814ab297 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/CgibinMeetingCancelRequest.cs @@ -17,6 +17,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models /// [Newtonsoft.Json.JsonProperty("sub_meetingid")] [System.Text.Json.Serialization.JsonPropertyName("sub_meetingid")] - public string? SubMeetingId { get; set; } = string.Empty; + public string? SubMeetingId { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsBookRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsBookRequest.cs new file mode 100644 index 00000000..98023f0a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsBookRequest.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/book 接口的请求。 + /// + public class CgibinMeetingRoomsBookRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置会议室 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id_list")] + public IList MeetingRoomIdList { get; set; } = new List(); + + /// + /// 获取或设置是否显示会议主题。 + /// + [Newtonsoft.Json.JsonProperty("subject_visible")] + [System.Text.Json.Serialization.JsonPropertyName("subject_visible")] + public bool? IsSubjectVisible { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsBookResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsBookResponse.cs new file mode 100644 index 00000000..8672a039 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsBookResponse.cs @@ -0,0 +1,42 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/book 接口的响应。 + /// + public class CgibinMeetingRoomsBookResponse : WechatWorkResponse + { + public static class Types + { + public class MeetingRoom + { + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string MeetingRoomId { get; set; } = default!; + + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_name")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")] + public string MeetingRoomName { get; set; } = default!; + + /// + /// 获取或设置会议室地址。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_location")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")] + public string MeetingRoomLocation { get; set; } = default!; + } + } + + /// + /// 获取或设置会议室列表。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_list")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_list")] + public Types.MeetingRoom[] MeetingRoomList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCallRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCallRequest.cs new file mode 100644 index 00000000..d51a2d81 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCallRequest.cs @@ -0,0 +1,49 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/call 接口的请求。 + /// + public class CgibinMeetingRoomsCallRequest : WechatWorkRequest + { + public static class Types + { + public class MRA + { + /// + /// 获取或设置信令协议。 + /// + [Newtonsoft.Json.JsonProperty("protocol")] + [System.Text.Json.Serialization.JsonPropertyName("protocol")] + public int Protocol { get; set; } + + /// + /// 获取或设置信令。 + /// + [Newtonsoft.Json.JsonProperty("dial_string")] + [System.Text.Json.Serialization.JsonPropertyName("dial_string")] + public string DialogString { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置会议室 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string? MeetingRoomId { get; set; } + + /// + /// 获取或设置 MRA 信息。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("mra_address")] + [System.Text.Json.Serialization.JsonPropertyName("mra_address")] + public Types.MRA? MRA { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCallResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCallResponse.cs new file mode 100644 index 00000000..37efcd6b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCallResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/call 接口的响应。 + /// + public class CgibinMeetingRoomsCallResponse : WechatWorkResponse + { + /// + /// 获取或设置呼叫 ID。 + /// + [Newtonsoft.Json.JsonProperty("invite_id")] + [System.Text.Json.Serialization.JsonPropertyName("invite_id")] + public string InviteId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallRequest.cs new file mode 100644 index 00000000..81d60857 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallRequest.cs @@ -0,0 +1,43 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/cancel_call 接口的请求。 + /// + public class CgibinMeetingRoomsCancelCallRequest : WechatWorkRequest + { + public static class Types + { + public class MRA : CgibinMeetingRoomsCallRequest.Types.MRA + { + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置呼叫 ID。 + /// + [Newtonsoft.Json.JsonProperty("invite_id")] + [System.Text.Json.Serialization.JsonPropertyName("invite_id")] + public string InviteId { get; set; } = string.Empty; + + /// + /// 获取或设置会议室 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string? MeetingRoomId { get; set; } + + /// + /// 获取或设置 MRA 信息。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("mra_address")] + [System.Text.Json.Serialization.JsonPropertyName("mra_address")] + public Types.MRA? MRA { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallResponse.cs new file mode 100644 index 00000000..b7a842b4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/cancel_call 接口的响应。 + /// + public class CgibinMeetingRoomsCancelCallResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigRequest.cs new file mode 100644 index 00000000..47732a67 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/get_config 接口的请求。 + /// + public class CgibinMeetingRoomsGetConfigRequest : WechatWorkRequest + { + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string MeetingRoomId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigResponse.cs new file mode 100644 index 00000000..611ebd89 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigResponse.cs @@ -0,0 +1,80 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/get_config 接口的响应。 + /// + public class CgibinMeetingRoomsGetConfigResponse : WechatWorkResponse + { + public static class Types + { + public class MeetingSettings + { + /// + /// 获取或设置水印状态。 + /// + [Newtonsoft.Json.JsonProperty("water_mark")] + [System.Text.Json.Serialization.JsonPropertyName("water_mark")] + public int WatermarkStatus { get; set; } + + /// + /// 获取或设置自动接听状态。 + /// + [Newtonsoft.Json.JsonProperty("auto_response")] + [System.Text.Json.Serialization.JsonPropertyName("auto_response")] + public int AutoResponseStatus { get; set; } + + /// + /// 获取或设置是否开启字幕。 + /// + [Newtonsoft.Json.JsonProperty("caption")] + [System.Text.Json.Serialization.JsonPropertyName("caption")] + public bool EnableCaption { get; set; } + + /// + /// 获取或设置是否开启专属 ID。 + /// + [Newtonsoft.Json.JsonProperty("room_pmi")] + [System.Text.Json.Serialization.JsonPropertyName("room_pmi")] + public bool EnableRoomPMI { get; set; } + + /// + /// 获取或设置是否展示消息通知。 + /// + [Newtonsoft.Json.JsonProperty("room_notification")] + [System.Text.Json.Serialization.JsonPropertyName("room_notification")] + public bool EnableRoomNotification { get; set; } + } + + public class RecordSettings + { + /// + /// 获取或设置分享云录制状态。 + /// + [Newtonsoft.Json.JsonProperty("share_record")] + [System.Text.Json.Serialization.JsonPropertyName("share_record")] + public int ShareRecordStatus { get; set; } + + /// + /// 获取或设置是否允许下载云录制。 + /// + [Newtonsoft.Json.JsonProperty("download_record")] + [System.Text.Json.Serialization.JsonPropertyName("download_record")] + public bool AllowDownload { get; set; } + } + } + + /// + /// 获取或设置会议配置信息。 + /// + [Newtonsoft.Json.JsonProperty("meeting_settings")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_settings")] + public Types.MeetingSettings MeetingSettings { get; set; } = default!; + + /// + /// 获取或设置录制配置信息。 + /// + [Newtonsoft.Json.JsonProperty("record_settings")] + [System.Text.Json.Serialization.JsonPropertyName("record_settings")] + public Types.RecordSettings RecordSettings { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoRequest.cs new file mode 100644 index 00000000..dbff40bd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/get_info 接口的请求。 + /// + public class CgibinMeetingRoomsGetInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string MeetingRoomId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoResponse.cs new file mode 100644 index 00000000..0ca2dcf3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoResponse.cs @@ -0,0 +1,311 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/get_info 接口的响应。 + /// + public class CgibinMeetingRoomsGetInfoResponse : WechatWorkResponse + { + public static class Types + { + public class BasicInfo + { + /// + /// 获取或设置 Rooms ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("rooms_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("rooms_id_list")] + public string[] RoomsIdList { get; set; } = default!; + + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_name")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")] + public string MeetingRoomName { get; set; } = default!; + + /// + /// 获取或设置城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string City { get; set; } = default!; + + /// + /// 获取或设置建筑。 + /// + [Newtonsoft.Json.JsonProperty("building")] + [System.Text.Json.Serialization.JsonPropertyName("building")] + public string Building { get; set; } = default!; + + /// + /// 获取或设置楼层。 + /// + [Newtonsoft.Json.JsonProperty("floor")] + [System.Text.Json.Serialization.JsonPropertyName("floor")] + public string Floor { get; set; } = default!; + + /// + /// 获取或设置容纳人数。 + /// + [Newtonsoft.Json.JsonProperty("participant_number")] + [System.Text.Json.Serialization.JsonPropertyName("participant_number")] + public int ParticipantNumber { get; set; } + + /// + /// 获取或设置会议室设备。 + /// + [Newtonsoft.Json.JsonProperty("device")] + [System.Text.Json.Serialization.JsonPropertyName("device")] + public string? Device { get; set; } + + /// + /// 获取或设置描述。 + /// + [Newtonsoft.Json.JsonProperty("desc")] + [System.Text.Json.Serialization.JsonPropertyName("desc")] + public string? Description { get; set; } + + /// + /// 获取或设置管理员密码。 + /// + [Newtonsoft.Json.JsonProperty("password")] + [System.Text.Json.Serialization.JsonPropertyName("password")] + public string? Password { get; set; } + } + + public class AccountInfo + { + /// + /// 获取或设置账号类型。 + /// + [Newtonsoft.Json.JsonProperty("account_type")] + [System.Text.Json.Serialization.JsonPropertyName("account_type")] + public int AccountType { get; set; } + + /// + /// 获取或设置有效期限字符串。 + /// + [Newtonsoft.Json.JsonProperty("valid_period")] + [System.Text.Json.Serialization.JsonPropertyName("valid_period")] + public string ValidPeriodString { get; set; } = default!; + } + + public class HardwareInfo + { + /// + /// 获取或设置厂家。 + /// + [Newtonsoft.Json.JsonProperty("factory")] + [System.Text.Json.Serialization.JsonPropertyName("factory")] + public string Factory { get; set; } = default!; + + /// + /// 获取或设置设备型号。 + /// + [Newtonsoft.Json.JsonProperty("device_model")] + [System.Text.Json.Serialization.JsonPropertyName("device_model")] + public string DeviceModel { get; set; } = default!; + + /// + /// 获取或设置设备序列号。 + /// + [Newtonsoft.Json.JsonProperty("sn")] + [System.Text.Json.Serialization.JsonPropertyName("sn")] + public string SerialNumber { get; set; } = default!; + + /// + /// 获取或设置 IP 地址。 + /// + [Newtonsoft.Json.JsonProperty("ip")] + [System.Text.Json.Serialization.JsonPropertyName("ip")] + public string IpAddress { get; set; } = default!; + + /// + /// 获取或设置 MAC 地址。 + /// + [Newtonsoft.Json.JsonProperty("mac")] + [System.Text.Json.Serialization.JsonPropertyName("mac")] + public string MacAddress { get; set; } = default!; + + /// + /// 获取或设置 Rooms 版本。 + /// + [Newtonsoft.Json.JsonProperty("rooms_version")] + [System.Text.Json.Serialization.JsonPropertyName("rooms_version")] + public string RoomsVersion { get; set; } = default!; + + /// + /// 获取或设置固件版本。 + /// + [Newtonsoft.Json.JsonProperty("firmware_version")] + [System.Text.Json.Serialization.JsonPropertyName("firmware_version")] + public string FirmwareVersion { get; set; } = default!; + + /// + /// 获取或设置健康状况。 + /// + [Newtonsoft.Json.JsonProperty("health_status")] + [System.Text.Json.Serialization.JsonPropertyName("health_status")] + public string HealthStatus { get; set; } = default!; + + /// + /// 获取或设置设备系统。 + /// + [Newtonsoft.Json.JsonProperty("system_type")] + [System.Text.Json.Serialization.JsonPropertyName("system_type")] + public string SystemType { get; set; } = default!; + + /// + /// 获取或设置会议室状态。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_status")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")] + public int MeetingRoomStatus { get; set; } + + /// + /// 获取或设置激活时间字符串(格式:yyyy-MM-dd HH:mm:ss)。 + /// + [Newtonsoft.Json.JsonProperty("active_time")] + [System.Text.Json.Serialization.JsonPropertyName("active_time")] + public string ActiveTimeString { get; set; } = default!; + + /// + /// 获取或设置 CPU 信息。 + /// + [Newtonsoft.Json.JsonProperty("cpu_info")] + [System.Text.Json.Serialization.JsonPropertyName("cpu_info")] + public string CPUInfo { get; set; } = default!; + + /// + /// 获取或设置 CPU 占用。 + /// + [Newtonsoft.Json.JsonProperty("cpu_usage")] + [System.Text.Json.Serialization.JsonPropertyName("cpu_usage")] + public string CPUUsage { get; set; } = default!; + + /// + /// 获取或设置 GPU 信息。 + /// + [Newtonsoft.Json.JsonProperty("gpu_info")] + [System.Text.Json.Serialization.JsonPropertyName("gpu_info")] + public string GPUInfo { get; set; } = default!; + + /// + /// 获取或设置网络类型。 + /// + [Newtonsoft.Json.JsonProperty("net_type")] + [System.Text.Json.Serialization.JsonPropertyName("net_type")] + public string NetworkType { get; set; } = default!; + + /// + /// 获取或设置内存信息。 + /// + [Newtonsoft.Json.JsonProperty("memory_info")] + [System.Text.Json.Serialization.JsonPropertyName("memory_info")] + public string MemoryInfo { get; set; } = default!; + + /// + /// 获取或设置显示器刷新率。 + /// + [Newtonsoft.Json.JsonProperty("monitor_frequency")] + [System.Text.Json.Serialization.JsonPropertyName("monitor_frequency")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))] + public string MonitorFrequency { get; set; } = default!; + + /// + /// 获取或设置摄像头型号。 + /// + [Newtonsoft.Json.JsonProperty("camera_model")] + [System.Text.Json.Serialization.JsonPropertyName("camera_model")] + public string CameraModel { get; set; } = default!; + + /// + /// 获取或设置是否开启视频镜像。 + /// + [Newtonsoft.Json.JsonProperty("enable_video_mirror")] + [System.Text.Json.Serialization.JsonPropertyName("enable_video_mirror")] + public bool EnableVideoMirror { get; set; } + + /// + /// 获取或设置麦克风信息。 + /// + [Newtonsoft.Json.JsonProperty("microphone_info")] + [System.Text.Json.Serialization.JsonPropertyName("microphone_info")] + public string MicrophoneInfo { get; set; } = default!; + + /// + /// 获取或设置扬声器信息。 + /// + [Newtonsoft.Json.JsonProperty("speaker_info")] + [System.Text.Json.Serialization.JsonPropertyName("speaker_info")] + public string SpeakerInfo { get; set; } = default!; + } + + public class PMIInfo + { + /// + /// 获取或设置专属 ID。 + /// + [Newtonsoft.Json.JsonProperty("pmi_code")] + [System.Text.Json.Serialization.JsonPropertyName("pmi_code")] + public string PMICode { get; set; } = default!; + + /// + /// 获取或设置入会密码。 + /// + [Newtonsoft.Json.JsonProperty("pmi_pwd")] + [System.Text.Json.Serialization.JsonPropertyName("pmi_pwd")] + public string PMIPassword { get; set; } = default!; + } + } + + /// + /// 获取或设置基本信息。 + /// + [Newtonsoft.Json.JsonProperty("basic_info")] + [System.Text.Json.Serialization.JsonPropertyName("basic_info")] + public Types.BasicInfo BasicInfo { get; set; } = default!; + + /// + /// 获取或设置帐号信息。 + /// + [Newtonsoft.Json.JsonProperty("account_info")] + [System.Text.Json.Serialization.JsonPropertyName("account_info")] + public Types.AccountInfo AccountInfo { get; set; } = default!; + + /// + /// 获取或设置硬件信息。 + /// + [Newtonsoft.Json.JsonProperty("hardware_info")] + [System.Text.Json.Serialization.JsonPropertyName("hardware_info")] + public Types.HardwareInfo HardwareInfo { get; set; } = default!; + + /// + /// 获取或设置 PMI 信息。 + /// + [Newtonsoft.Json.JsonProperty("pmi_info")] + [System.Text.Json.Serialization.JsonPropertyName("pmi_info")] + public Types.PMIInfo PMIInfo { get; set; } = default!; + + /// + /// 获取或设置告警通知状态。 + /// + [Newtonsoft.Json.JsonProperty("monitor_status")] + [System.Text.Json.Serialization.JsonPropertyName("monitor_status")] + public int MonitorStatus { get; set; } + + /// + /// 获取或设置预定状态。 + /// + [Newtonsoft.Json.JsonProperty("scheduled_status")] + [System.Text.Json.Serialization.JsonPropertyName("scheduled_status")] + public int ScheduledStatus { get; set; } + + /// + /// 获取或设置是否允许被呼叫。 + /// + [Newtonsoft.Json.JsonProperty("is_allow_call")] + [System.Text.Json.Serialization.JsonPropertyName("is_allow_call")] + public bool IsAllowCall { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryRequest.cs new file mode 100644 index 00000000..53d94294 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryRequest.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/get_inventory 接口的请求。 + /// + public class CgibinMeetingRoomsGetInventoryRequest : WechatWorkRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryResponse.cs new file mode 100644 index 00000000..3fca4f6f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryResponse.cs @@ -0,0 +1,50 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/get_inventory 接口的响应。 + /// + public class CgibinMeetingRoomsGetInventoryResponse : WechatWorkResponse + { + /// + /// 获取或设置普通设备数。 + /// + [Newtonsoft.Json.JsonProperty("normal_count")] + [System.Text.Json.Serialization.JsonPropertyName("normal_count")] + public int NormalCount { get; set; } + + /// + /// 获取或设置专款设备数。 + /// + [Newtonsoft.Json.JsonProperty("special_count")] + [System.Text.Json.Serialization.JsonPropertyName("special_count")] + public int SpecialCount { get; set; } + + /// + /// 获取或设置普通设备使用数。 + /// + [Newtonsoft.Json.JsonProperty("normal_used_count")] + [System.Text.Json.Serialization.JsonPropertyName("normal_used_count")] + public int NormalUsedCount { get; set; } + + /// + /// 获取或设置专款设备使用数。 + /// + [Newtonsoft.Json.JsonProperty("special_used_count")] + [System.Text.Json.Serialization.JsonPropertyName("special_used_count")] + public int SpecialUsedCount { get; set; } + + /// + /// 获取或设置普通设备过期数。 + /// + [Newtonsoft.Json.JsonProperty("normal_expired_count")] + [System.Text.Json.Serialization.JsonPropertyName("normal_expired_count")] + public int NormalExpiredCount { get; set; } + + /// + /// 获取或设置专款设备过期数。 + /// + [Newtonsoft.Json.JsonProperty("special_expired_count")] + [System.Text.Json.Serialization.JsonPropertyName("special_expired_count")] + public int SpecialExpiredCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusRequest.cs new file mode 100644 index 00000000..795b9c59 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusRequest.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/get_response_status 接口的请求。 + /// + public class CgibinMeetingRoomsGetResponseStatusRequest : WechatWorkRequest + { + public static class Types + { + public class MRA : CgibinMeetingRoomsCallRequest.Types.MRA + { + } + } + + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置会议室 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string? MeetingRoomId { get; set; } + + /// + /// 获取或设置 MRA 信息。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("mra_address")] + [System.Text.Json.Serialization.JsonPropertyName("mra_address")] + public Types.MRA? MRA { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusResponse.cs new file mode 100644 index 00000000..016c047d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/get_response_status 接口的响应。 + /// + public class CgibinMeetingRoomsGetResponseStatusResponse : WechatWorkResponse + { + /// + /// 获取或设置应答状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置最近一次应答时间字符串(格式:yyyy/MM/dd HH:mm:ss)。 + /// + [Newtonsoft.Json.JsonProperty("response_time")] + [System.Text.Json.Serialization.JsonPropertyName("response_time")] + public string LastResponseTimeString { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersRequest.cs new file mode 100644 index 00000000..f8510cab --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/list_controllers 接口的请求。 + /// + public class CgibinMeetingRoomsListControllersRequest : WechatWorkRequest + { + /// + /// 获取或设置控制器名称。 + /// + [Newtonsoft.Json.JsonProperty("controller_name")] + [System.Text.Json.Serialization.JsonPropertyName("controller_name")] + public string? ControllerName { 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/Rooms/CgibinMeetingRoomsListControllersResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersResponse.cs new file mode 100644 index 00000000..84fcb077 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersResponse.cs @@ -0,0 +1,168 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/list_controllers 接口的响应。 + /// + public class CgibinMeetingRoomsListControllersResponse : WechatWorkResponse + { + public static class Types + { + public class Controller + { + public static class Types + { + public class MonitorInfo + { + /// + /// 获取或设置摄像头状态。 + /// + [Newtonsoft.Json.JsonProperty("camera_status")] + [System.Text.Json.Serialization.JsonPropertyName("camera_status")] + public bool CameraStatus { get; set; } + + /// + /// 获取或设置麦克风状态。 + /// + [Newtonsoft.Json.JsonProperty("microphone_status")] + [System.Text.Json.Serialization.JsonPropertyName("microphone_status")] + public bool MicrophoneStatus { get; set; } + + /// + /// 获取或设置扬声器状态。 + /// + [Newtonsoft.Json.JsonProperty("speaker_status")] + [System.Text.Json.Serialization.JsonPropertyName("speaker_status")] + public bool SpeakerStatus { get; set; } + } + } + + /// + /// 获取或设置 Rooms ID。 + /// + [Newtonsoft.Json.JsonProperty("rooms_id")] + [System.Text.Json.Serialization.JsonPropertyName("rooms_id")] + public string RoomsId { get; set; } = default!; + + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_name")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")] + public string MeetingRoomName { get; set; } = default!; + + /// + /// 获取或设置会议室地址。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_location")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")] + public string MeetingRoomLocation { get; set; } = default!; + + /// + /// 获取或设置厂商名称。 + /// + [Newtonsoft.Json.JsonProperty("manufacture_name")] + [System.Text.Json.Serialization.JsonPropertyName("manufacture_name")] + public string ManufactureName { get; set; } = default!; + + /// + /// 获取或设置控制器名称。 + /// + [Newtonsoft.Json.JsonProperty("controller_name")] + [System.Text.Json.Serialization.JsonPropertyName("controller_name")] + public string ControllerName { get; set; } = default!; + + /// + /// 获取或设置控制器型号。 + /// + [Newtonsoft.Json.JsonProperty("controller_model")] + [System.Text.Json.Serialization.JsonPropertyName("controller_model")] + public string ControllerModel { get; set; } = default!; + + /// + /// 获取或设置应用版本。 + /// + [Newtonsoft.Json.JsonProperty("app_version")] + [System.Text.Json.Serialization.JsonPropertyName("app_version")] + public string AppVersion { get; set; } = default!; + + /// + /// 获取或设置固件版本。 + /// + [Newtonsoft.Json.JsonProperty("framework_version")] + [System.Text.Json.Serialization.JsonPropertyName("framework_version")] + public string FrameworkVersion { get; set; } = default!; + + /// + /// 获取或设置设备状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))] + public string ControllerStatus { get; set; } = default!; + + /// + /// 获取或设置 IP 地址。 + /// + [Newtonsoft.Json.JsonProperty("ip_address")] + [System.Text.Json.Serialization.JsonPropertyName("ip_address")] + public string IpAddress { get; set; } = default!; + + /// + /// 获取或设置 MAC 地址。 + /// + [Newtonsoft.Json.JsonProperty("mac_address")] + [System.Text.Json.Serialization.JsonPropertyName("mac_address")] + public string MacAddress { get; set; } = default!; + + /// + /// 获取或设置 CPU 类型。 + /// + [Newtonsoft.Json.JsonProperty("cpu_type")] + [System.Text.Json.Serialization.JsonPropertyName("cpu_type")] + public string CPUType { get; set; } = default!; + + /// + /// 获取或设置 CPU 占用。 + /// + [Newtonsoft.Json.JsonProperty("cpu_usage")] + [System.Text.Json.Serialization.JsonPropertyName("cpu_usage")] + public string CPUUsage { get; set; } = default!; + + /// + /// 获取或设置网络类型。 + /// + [Newtonsoft.Json.JsonProperty("network_type")] + [System.Text.Json.Serialization.JsonPropertyName("network_type")] + public string NetworkType { get; set; } = default!; + + /// + /// 获取或设置内存占用。 + /// + [Newtonsoft.Json.JsonProperty("mem_usage")] + [System.Text.Json.Serialization.JsonPropertyName("mem_usage")] + public string MemoryUsage { get; set; } = default!; + } + } + + /// + /// 获取或设置控制器列表。 + /// + [Newtonsoft.Json.JsonProperty("controller_info_list")] + [System.Text.Json.Serialization.JsonPropertyName("controller_info_list")] + public Types.Controller[] ControllerList { 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/Rooms/CgibinMeetingRoomsListDevicesRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesRequest.cs new file mode 100644 index 00000000..6ac73f1d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/list_devices 接口的请求。 + /// + public class CgibinMeetingRoomsListDevicesRequest : WechatWorkRequest + { + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_name")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")] + public string? MeetingRoomName { 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/Rooms/CgibinMeetingRoomsListDevicesResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesResponse.cs new file mode 100644 index 00000000..ed6cba99 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesResponse.cs @@ -0,0 +1,118 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/list_devices 接口的响应。 + /// + public class CgibinMeetingRoomsListDevicesResponse : WechatWorkResponse + { + public static class Types + { + public class Device + { + public static class Types + { + public class MonitorInfo + { + /// + /// 获取或设置摄像头状态。 + /// + [Newtonsoft.Json.JsonProperty("camera_status")] + [System.Text.Json.Serialization.JsonPropertyName("camera_status")] + public bool CameraStatus { get; set; } + + /// + /// 获取或设置麦克风状态。 + /// + [Newtonsoft.Json.JsonProperty("microphone_status")] + [System.Text.Json.Serialization.JsonPropertyName("microphone_status")] + public bool MicrophoneStatus { get; set; } + + /// + /// 获取或设置扬声器状态。 + /// + [Newtonsoft.Json.JsonProperty("speaker_status")] + [System.Text.Json.Serialization.JsonPropertyName("speaker_status")] + public bool SpeakerStatus { get; set; } + } + } + + /// + /// 获取或设置 Rooms ID。 + /// + [Newtonsoft.Json.JsonProperty("rooms_id")] + [System.Text.Json.Serialization.JsonPropertyName("rooms_id")] + public string RoomsId { get; set; } = default!; + + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string MeetingRoomId { get; set; } = default!; + + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_name")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")] + public string MeetingRoomName { get; set; } = default!; + + /// + /// 获取或设置会议室地址。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_location")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")] + public string MeetingRoomLocation { get; set; } = default!; + + /// + /// 获取或设置设备型号。 + /// + [Newtonsoft.Json.JsonProperty("device_model")] + [System.Text.Json.Serialization.JsonPropertyName("device_model")] + public string DeviceModel { get; set; } = default!; + + /// + /// 获取或设置应用版本。 + /// + [Newtonsoft.Json.JsonProperty("app_version")] + [System.Text.Json.Serialization.JsonPropertyName("app_version")] + public string AppVersion { get; set; } = default!; + + /// + /// 获取或设置会议室状态。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_status")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")] + public int MeetingRoomStatus { get; set; } + + /// + /// 获取或设置设备健康信息。 + /// + [Newtonsoft.Json.JsonProperty("device_monitor_info")] + [System.Text.Json.Serialization.JsonPropertyName("device_monitor_info")] + public Types.MonitorInfo MonitorInfo { get; set; } = default!; + } + } + + /// + /// 获取或设置设备列表。 + /// + [Newtonsoft.Json.JsonProperty("device_info_list")] + [System.Text.Json.Serialization.JsonPropertyName("device_info_list")] + public Types.Device[] DeviceList { 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/Rooms/CgibinMeetingRoomsListMeetingsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsRequest.cs new file mode 100644 index 00000000..13df4578 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsRequest.cs @@ -0,0 +1,50 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/list_meetings 接口的请求。 + /// + public class CgibinMeetingRoomsListMeetingsRequest : WechatWorkRequest + { + /// + /// 获取或设置会议室 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string? MeetingRoomId { get; set; } + + /// + /// 获取或设置 Rooms ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("rooms_id")] + [System.Text.Json.Serialization.JsonPropertyName("rooms_id")] + public string? RoomsId { 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("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/Rooms/CgibinMeetingRoomsListMeetingsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsResponse.cs new file mode 100644 index 00000000..6b8295f3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsResponse.cs @@ -0,0 +1,84 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/list_meetings 接口的响应。 + /// + public class CgibinMeetingRoomsListMeetingsResponse : WechatWorkResponse + { + public static class Types + { + public class Meeting + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = default!; + + /// + /// 获取或设置入会码。 + /// + [Newtonsoft.Json.JsonProperty("meeting_code")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_code")] + public string MeetingCode { get; set; } = default!; + + /// + /// 获取或设置会议主题。 + /// + [Newtonsoft.Json.JsonProperty("subject")] + [System.Text.Json.Serialization.JsonPropertyName("subject")] + public string Subject { get; set; } = default!; + + /// + /// 获取或设置会议类型。 + /// + [Newtonsoft.Json.JsonProperty("meeting_type")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_type")] + public int MeetingType { get; set; } + + /// + /// 获取或设置会议状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { 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; } + } + } + + /// + /// 获取或设置会议列表。 + /// + [Newtonsoft.Json.JsonProperty("meeting_info_list")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_info_list")] + public Types.Meeting[] MeetingList { 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/Rooms/CgibinMeetingRoomsListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListRequest.cs new file mode 100644 index 00000000..027dc667 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/list 接口的请求。 + /// + public class CgibinMeetingRoomsListRequest : WechatWorkRequest + { + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_name")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")] + public string? MeetingRoomName { 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/Rooms/CgibinMeetingRoomsListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListResponse.cs new file mode 100644 index 00000000..fad82b60 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsListResponse.cs @@ -0,0 +1,98 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/list 接口的响应。 + /// + public class CgibinMeetingRoomsListResponse : WechatWorkResponse + { + public static class Types + { + public class MeetingRoom + { + /// + /// 获取或设置会议室 ID。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")] + public string MeetingRoomId { get; set; } = default!; + + /// + /// 获取或设置会议室名称。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_name")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")] + public string MeetingRoomName { get; set; } = default!; + + /// + /// 获取或设置会议室地址。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_location")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")] + public string MeetingRoomLocation { get; set; } = default!; + + /// + /// 获取或设置账号类型。 + /// + [Newtonsoft.Json.JsonProperty("account_type")] + [System.Text.Json.Serialization.JsonPropertyName("account_type")] + public int AccountType { get; set; } + + /// + /// 获取或设置激活码。 + /// + [Newtonsoft.Json.JsonProperty("active_code")] + [System.Text.Json.Serialization.JsonPropertyName("active_code")] + public string ActiveCode { get; set; } = default!; + + /// + /// 获取或设置容纳人数。 + /// + [Newtonsoft.Json.JsonProperty("participant_number")] + [System.Text.Json.Serialization.JsonPropertyName("participant_number")] + public int ParticipantNumber { get; set; } + + /// + /// 获取或设置会议室状态。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_status")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")] + public int Status { get; set; } + + /// + /// 获取或设置预定状态。 + /// + [Newtonsoft.Json.JsonProperty("scheduled_status")] + [System.Text.Json.Serialization.JsonPropertyName("scheduled_status")] + public int ScheduledStatus { get; set; } + + /// + /// 获取或设置是否允许被呼叫。 + /// + [Newtonsoft.Json.JsonProperty("is_allow_call")] + [System.Text.Json.Serialization.JsonPropertyName("is_allow_call")] + public bool IsAllowCall { get; set; } + } + } + + /// + /// 获取或设置会议室列表。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_list")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_list")] + public Types.MeetingRoom[] MeetingRoomList { 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/Rooms/CgibinMeetingRoomsReleaseRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsReleaseRequest.cs new file mode 100644 index 00000000..0817211a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsReleaseRequest.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/release 接口的请求。 + /// + public class CgibinMeetingRoomsReleaseRequest : WechatWorkRequest + { + /// + /// 获取或设置会议 ID。 + /// + [Newtonsoft.Json.JsonProperty("meetingid")] + [System.Text.Json.Serialization.JsonPropertyName("meetingid")] + public string MeetingId { get; set; } = string.Empty; + + /// + /// 获取或设置会议室 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("meeting_room_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("meeting_room_id_list")] + public IList MeetingRoomIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsReleaseResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsReleaseResponse.cs new file mode 100644 index 00000000..20a87ca4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Rooms/CgibinMeetingRoomsReleaseResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/meeting/rooms/release 接口的响应。 + /// + public class CgibinMeetingRoomsReleaseResponse : WechatWorkResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsBookRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsBookRequest.json new file mode 100644 index 00000000..fc7654b2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsBookRequest.json @@ -0,0 +1,5 @@ +{ + "meetingid": "MEETINGID", + "meeting_room_id_list": [ "RoomId001", "RoomId002" ], + "subject_visible": true +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsBookResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsBookResponse.json new file mode 100644 index 00000000..08111064 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsBookResponse.json @@ -0,0 +1,16 @@ +{ + "errcode": 0, + "errmsg": "ok", + "meeting_room_list": [ + { + "meeting_room_id": "100001", + "meeting_room_name": "会议室测试1", + "meeting_room_location": "广州-大厦-10" + }, + { + "meeting_room_id": "100002", + "meeting_room_name": "会议室测试2", + "meeting_room_location": "广州-大厦-11" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCallRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCallRequest.json new file mode 100644 index 00000000..81132a16 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCallRequest.json @@ -0,0 +1,8 @@ +{ + "meetingid": "MEETINGID", + "meeting_room_id": "ROOMID", + "mra_address": { + "protocol": 2, + "dial_string": "xxx" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCallResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCallResponse.json new file mode 100644 index 00000000..260b6d17 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCallResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "invite_id": "INVITEID" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallRequest.json new file mode 100644 index 00000000..80de396d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsCancelCallRequest.json @@ -0,0 +1,9 @@ +{ + "meetingid": "MEETINGID", + "invite_id": "INVITEID", + "meeting_room_id": "ROOMID", + "mra_address": { + "protocol": 2, + "dial_string": "xxx" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigRequest.json new file mode 100644 index 00000000..3f8157bf --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigRequest.json @@ -0,0 +1,3 @@ +{ + "meeting_room_id": "ROOMID" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigResponse.json new file mode 100644 index 00000000..dbdee7b9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetConfigResponse.json @@ -0,0 +1,15 @@ +{ + "errcode": 0, + "errmsg": "ok", + "meeting_settings": { + "water_mark": 2, + "auto_response": 1, + "caption": true, + "room_pmi": true, + "room_notification": true + }, + "record_settings": { + "share_record": 0, + "download_record": true + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoRequest.json new file mode 100644 index 00000000..28a1503c --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoRequest.json @@ -0,0 +1,3 @@ +{ + "meeting_room_id": "RoomId001" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoResponse.json new file mode 100644 index 00000000..2f6162cc --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInfoResponse.json @@ -0,0 +1,51 @@ +{ + "errcode": 0, + "errmsg": "ok", + "basic_info": { + "rooms_id_list": [ + "200115200039985708" + ], + "meeting_room_name": "会议室测试1", + "city": "广州", + "building": "大厦", + "floor": "10", + "participant_number": 3, + "device": "ROOMS", + "desc": "aGVsbG8=", + "password": "MzMz" + }, + "account_info": { + "account_type": 0, + "valid_period": "-" + }, + "hardware_info": { + "factory": "", + "device_model": "", + "sn": "", + "ip": "10.10.10.69", + "mac": "a1:ee:27:c1:8a:1a", + "rooms_version": "2.7.2.420", + "firmware_version": "", + "health_status": "ERROR", + "system_type": "10.13.6", + "meeting_room_status": 1, + "active_time": "2021-03-23 15:37:34", + "cpu_info": "Intel(R) Core(TM) i7-7700K", + "cpu_usage": "", + "gpu_info": "", + "net_type": "ethernet", + "memory_info": "", + "monitor_frequency": 0, + "camera_model": "FaceTime 高清摄像头(内建)", + "enable_video_mirror": true, + "microphone_info": "内建麦克风 ", + "speaker_info": "内建输出" + }, + "pmi_info": { + "pmi_code": "12345678", + "pmi_pwd": "XXXXXXX" + }, + "monitor_status": 0, + "is_allow_call": true, + "scheduled_status": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryResponse.json new file mode 100644 index 00000000..7475f068 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetInventoryResponse.json @@ -0,0 +1,10 @@ +{ + "errcode": 0, + "errmsg": "ok", + "normal_count": 10, + "special_count": 2, + "normal_used_count": 2, + "special_used_count": 1, + "normal_expired_count": 0, + "special_expired_count": 0 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusRequest.json new file mode 100644 index 00000000..81132a16 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusRequest.json @@ -0,0 +1,8 @@ +{ + "meetingid": "MEETINGID", + "meeting_room_id": "ROOMID", + "mra_address": { + "protocol": 2, + "dial_string": "xxx" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusResponse.json new file mode 100644 index 00000000..fdcb04a1 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsGetResponseStatusResponse.json @@ -0,0 +1,6 @@ +{ + "errcode": 0, + "errmsg": "ok", + "status": 2, + "response_time": "2022/11/22 14:35:26" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersRequest.json new file mode 100644 index 00000000..5dcd801c --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersRequest.json @@ -0,0 +1,5 @@ +{ + "controller_name": "NAME", + "cursor": "CURSOR", + "limit": 20 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersResponse.json new file mode 100644 index 00000000..dde7c7c3 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListControllersResponse.json @@ -0,0 +1,25 @@ +{ + "errcode": 0, + "errmsg": "ok", + "has_more": true, + "next_cursor": "CURSOR", + "controller_info_list": [ + { + "rooms_id": "12356", + "meeting_room_name": "会议室测试1", + "meeting_room_location": "广州-大厦-10", + "controller_name": "nxxxxxxeng-test123", + "manufacture_name": "Apple", + "controller_model": "Apple", + "app_version": "x.x.x.x", + "status": "0", + "framework_version": "iOS 15.2.1", + "ip_address": "x.x.x.x", + "mac_address": "x:x:x:x:x:x", + "cpu_type": "ARM64", + "cpu_usage": "1.7", + "network_type": "wifi", + "mem_usage": "3.6GB" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesRequest.json new file mode 100644 index 00000000..f4db65b9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesRequest.json @@ -0,0 +1,5 @@ +{ + "meeting_room_name": "ROOMNAME", + "cursor": "CURSOR", + "limit": 50 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesResponse.json new file mode 100644 index 00000000..f969c008 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListDevicesResponse.json @@ -0,0 +1,22 @@ +{ + "errcode": 0, + "errmsg": "ok", + "has_more": true, + "next_cursor": "CURSOR", + "device_info_list": [ + { + "meeting_room_id": "100001", + "rooms_id": "45613", + "meeting_room_name": "会议室测试1", + "meeting_room_location": "广州-大厦-10", + "device_model": "TT-IP65T", + "app_version": "4.1.6.0", + "meeting_room_status": 1, + "device_monitor_info": { + "camera_status": true, + "microphone_status": true, + "speaker_status": true + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsRequest.json new file mode 100644 index 00000000..724c92e4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsRequest.json @@ -0,0 +1,8 @@ +{ + "meeting_room_id": "MEETINGROOMID", + "rooms_id": "ROOMSID", + "start_time": 1679299200, + "end_time": 1679558400, + "cursor": "CURSOR", + "limit": 20 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsResponse.json new file mode 100644 index 00000000..032591b8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListMeetingsResponse.json @@ -0,0 +1,17 @@ +{ + "errcode": 0, + "errmsg": "ok", + "has_more": true, + "next_cursor": "CURSOR", + "meeting_info_list": [ + { + "meetingid": "100001", + "meeting_code": "14512", + "subject": "周会", + "status": "MEETING_STATE_STARTED", + "meeting_type": 0, + "start_time": 1679313600, + "end_time": 1679317200 + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListRequest.json new file mode 100644 index 00000000..f4db65b9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListRequest.json @@ -0,0 +1,5 @@ +{ + "meeting_room_name": "ROOMNAME", + "cursor": "CURSOR", + "limit": 50 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListResponse.json new file mode 100644 index 00000000..5b85f8e1 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsListResponse.json @@ -0,0 +1,30 @@ +{ + "errcode": 0, + "errmsg": "ok", + "has_more": true, + "next_cursor": "CURSOR", + "meeting_room_list": [ + { + "meeting_room_id": "100001", + "meeting_room_name": "会议室测试1", + "meeting_room_location": "广州-大厦-10", + "account_type": 1, + "active_code": "69MS2PKC", + "participant_number": 12, + "meeting_room_status": 1, + "scheduled_status": 0, + "is_allow_call": true + }, + { + "meeting_room_id": "100002", + "meeting_room_name": "会议室测试2", + "meeting_room_location": "广州-大厦-11", + "account_type": 1, + "active_code": "69MS2PKC", + "participant_number": 12, + "meeting_room_status": 1, + "scheduled_status": 0, + "is_allow_call": true + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsReleaseRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsReleaseRequest.json new file mode 100644 index 00000000..75b20b34 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Rooms/CgibinMeetingRoomsReleaseRequest.json @@ -0,0 +1,4 @@ +{ + "meetingid": "MEETINGID", + "meeting_room_id_list": [ "RoomId001", "RoomId002" ] +}