feat(work): 新增会议 Rooms 管理相关接口

This commit is contained in:
Fu Diwei
2023-06-15 15:29:37 +08:00
parent 67cac022e0
commit d835b701a8
47 changed files with 1870 additions and 1 deletions

View File

@@ -741,5 +741,247 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinMeetingRecordDeleteFileResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Rooms
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/book 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98791 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsBookResponse> 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<Models.CgibinMeetingRoomsBookResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/release 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98792 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsReleaseResponse> 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<Models.CgibinMeetingRoomsReleaseResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/list 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98795 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsListResponse> 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<Models.CgibinMeetingRoomsListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/get_info 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98793 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsGetInfoResponse> 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<Models.CgibinMeetingRoomsGetInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/get_config 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98802 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsGetConfigResponse> 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<Models.CgibinMeetingRoomsGetConfigResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/list_meetings 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98796 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsListMeetingsResponse> 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<Models.CgibinMeetingRoomsListMeetingsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/list_devices 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98798 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsListDevicesResponse> 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<Models.CgibinMeetingRoomsListDevicesResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/list_controllers 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98799 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsListControllersResponse> 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<Models.CgibinMeetingRoomsListControllersResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/get_inventory 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98809 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsGetInventoryResponse> 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<Models.CgibinMeetingRoomsGetInventoryResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/call 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98804 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsCallResponse> 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<Models.CgibinMeetingRoomsCallResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/cancel_call 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98805 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsCancelCallResponse> 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<Models.CgibinMeetingRoomsCancelCallResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/meeting/rooms/get_response_status 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/98806 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMeetingRoomsGetResponseStatusResponse> 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<Models.CgibinMeetingRoomsGetResponseStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@@ -17,6 +17,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_meetingid")]
public string? SubMeetingId { get; set; } = string.Empty;
public string? SubMeetingId { get; set; }
}
}

View File

@@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/book 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsBookRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id_list")]
public IList<string> MeetingRoomIdList { get; set; } = new List<string>();
/// <summary>
/// 获取或设置是否显示会议主题。
/// </summary>
[Newtonsoft.Json.JsonProperty("subject_visible")]
[System.Text.Json.Serialization.JsonPropertyName("subject_visible")]
public bool? IsSubjectVisible { get; set; }
}
}

View File

@@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/book 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsBookResponse : WechatWorkResponse
{
public static class Types
{
public class MeetingRoom
{
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置会议室地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_location")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")]
public string MeetingRoomLocation { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置会议室列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_list")]
public Types.MeetingRoom[] MeetingRoomList { get; set; } = default!;
}
}

View File

@@ -0,0 +1,49 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/call 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsCallRequest : WechatWorkRequest
{
public static class Types
{
public class MRA
{
/// <summary>
/// 获取或设置信令协议。
/// </summary>
[Newtonsoft.Json.JsonProperty("protocol")]
[System.Text.Json.Serialization.JsonPropertyName("protocol")]
public int Protocol { get; set; }
/// <summary>
/// 获取或设置信令。
/// </summary>
[Newtonsoft.Json.JsonProperty("dial_string")]
[System.Text.Json.Serialization.JsonPropertyName("dial_string")]
public string DialogString { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID。与字段 <see cref="MRA"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string? MeetingRoomId { get; set; }
/// <summary>
/// 获取或设置 MRA 信息。与字段 <see cref="MeetingRoomId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("mra_address")]
[System.Text.Json.Serialization.JsonPropertyName("mra_address")]
public Types.MRA? MRA { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/call 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsCallResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置呼叫 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("invite_id")]
[System.Text.Json.Serialization.JsonPropertyName("invite_id")]
public string InviteId { get; set; } = default!;
}
}

View File

@@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/cancel_call 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsCancelCallRequest : WechatWorkRequest
{
public static class Types
{
public class MRA : CgibinMeetingRoomsCallRequest.Types.MRA
{
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置呼叫 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("invite_id")]
[System.Text.Json.Serialization.JsonPropertyName("invite_id")]
public string InviteId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID。与字段 <see cref="MRA"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string? MeetingRoomId { get; set; }
/// <summary>
/// 获取或设置 MRA 信息。与字段 <see cref="MeetingRoomId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("mra_address")]
[System.Text.Json.Serialization.JsonPropertyName("mra_address")]
public Types.MRA? MRA { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/cancel_call 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsCancelCallResponse : WechatWorkResponse
{
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_config 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsGetConfigRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,80 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_config 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsGetConfigResponse : WechatWorkResponse
{
public static class Types
{
public class MeetingSettings
{
/// <summary>
/// 获取或设置水印状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("water_mark")]
[System.Text.Json.Serialization.JsonPropertyName("water_mark")]
public int WatermarkStatus { get; set; }
/// <summary>
/// 获取或设置自动接听状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("auto_response")]
[System.Text.Json.Serialization.JsonPropertyName("auto_response")]
public int AutoResponseStatus { get; set; }
/// <summary>
/// 获取或设置是否开启字幕。
/// </summary>
[Newtonsoft.Json.JsonProperty("caption")]
[System.Text.Json.Serialization.JsonPropertyName("caption")]
public bool EnableCaption { get; set; }
/// <summary>
/// 获取或设置是否开启专属 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_pmi")]
[System.Text.Json.Serialization.JsonPropertyName("room_pmi")]
public bool EnableRoomPMI { get; set; }
/// <summary>
/// 获取或设置是否展示消息通知。
/// </summary>
[Newtonsoft.Json.JsonProperty("room_notification")]
[System.Text.Json.Serialization.JsonPropertyName("room_notification")]
public bool EnableRoomNotification { get; set; }
}
public class RecordSettings
{
/// <summary>
/// 获取或设置分享云录制状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("share_record")]
[System.Text.Json.Serialization.JsonPropertyName("share_record")]
public int ShareRecordStatus { get; set; }
/// <summary>
/// 获取或设置是否允许下载云录制。
/// </summary>
[Newtonsoft.Json.JsonProperty("download_record")]
[System.Text.Json.Serialization.JsonPropertyName("download_record")]
public bool AllowDownload { get; set; }
}
}
/// <summary>
/// 获取或设置会议配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_settings")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_settings")]
public Types.MeetingSettings MeetingSettings { get; set; } = default!;
/// <summary>
/// 获取或设置录制配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("record_settings")]
[System.Text.Json.Serialization.JsonPropertyName("record_settings")]
public Types.RecordSettings RecordSettings { get; set; } = default!;
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_info 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsGetInfoRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,311 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_info 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsGetInfoResponse : WechatWorkResponse
{
public static class Types
{
public class BasicInfo
{
/// <summary>
/// 获取或设置 Rooms ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_id_list")]
public string[] RoomsIdList { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置城市。
/// </summary>
[Newtonsoft.Json.JsonProperty("city")]
[System.Text.Json.Serialization.JsonPropertyName("city")]
public string City { get; set; } = default!;
/// <summary>
/// 获取或设置建筑。
/// </summary>
[Newtonsoft.Json.JsonProperty("building")]
[System.Text.Json.Serialization.JsonPropertyName("building")]
public string Building { get; set; } = default!;
/// <summary>
/// 获取或设置楼层。
/// </summary>
[Newtonsoft.Json.JsonProperty("floor")]
[System.Text.Json.Serialization.JsonPropertyName("floor")]
public string Floor { get; set; } = default!;
/// <summary>
/// 获取或设置容纳人数。
/// </summary>
[Newtonsoft.Json.JsonProperty("participant_number")]
[System.Text.Json.Serialization.JsonPropertyName("participant_number")]
public int ParticipantNumber { get; set; }
/// <summary>
/// 获取或设置会议室设备。
/// </summary>
[Newtonsoft.Json.JsonProperty("device")]
[System.Text.Json.Serialization.JsonPropertyName("device")]
public string? Device { get; set; }
/// <summary>
/// 获取或设置描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("desc")]
[System.Text.Json.Serialization.JsonPropertyName("desc")]
public string? Description { get; set; }
/// <summary>
/// 获取或设置管理员密码。
/// </summary>
[Newtonsoft.Json.JsonProperty("password")]
[System.Text.Json.Serialization.JsonPropertyName("password")]
public string? Password { get; set; }
}
public class AccountInfo
{
/// <summary>
/// 获取或设置账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_type")]
[System.Text.Json.Serialization.JsonPropertyName("account_type")]
public int AccountType { get; set; }
/// <summary>
/// 获取或设置有效期限字符串。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_period")]
[System.Text.Json.Serialization.JsonPropertyName("valid_period")]
public string ValidPeriodString { get; set; } = default!;
}
public class HardwareInfo
{
/// <summary>
/// 获取或设置厂家。
/// </summary>
[Newtonsoft.Json.JsonProperty("factory")]
[System.Text.Json.Serialization.JsonPropertyName("factory")]
public string Factory { get; set; } = default!;
/// <summary>
/// 获取或设置设备型号。
/// </summary>
[Newtonsoft.Json.JsonProperty("device_model")]
[System.Text.Json.Serialization.JsonPropertyName("device_model")]
public string DeviceModel { get; set; } = default!;
/// <summary>
/// 获取或设置设备序列号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sn")]
[System.Text.Json.Serialization.JsonPropertyName("sn")]
public string SerialNumber { get; set; } = default!;
/// <summary>
/// 获取或设置 IP 地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("ip")]
[System.Text.Json.Serialization.JsonPropertyName("ip")]
public string IpAddress { get; set; } = default!;
/// <summary>
/// 获取或设置 MAC 地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("mac")]
[System.Text.Json.Serialization.JsonPropertyName("mac")]
public string MacAddress { get; set; } = default!;
/// <summary>
/// 获取或设置 Rooms 版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_version")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_version")]
public string RoomsVersion { get; set; } = default!;
/// <summary>
/// 获取或设置固件版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("firmware_version")]
[System.Text.Json.Serialization.JsonPropertyName("firmware_version")]
public string FirmwareVersion { get; set; } = default!;
/// <summary>
/// 获取或设置健康状况。
/// </summary>
[Newtonsoft.Json.JsonProperty("health_status")]
[System.Text.Json.Serialization.JsonPropertyName("health_status")]
public string HealthStatus { get; set; } = default!;
/// <summary>
/// 获取或设置设备系统。
/// </summary>
[Newtonsoft.Json.JsonProperty("system_type")]
[System.Text.Json.Serialization.JsonPropertyName("system_type")]
public string SystemType { get; set; } = default!;
/// <summary>
/// 获取或设置会议室状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_status")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")]
public int MeetingRoomStatus { get; set; }
/// <summary>
/// 获取或设置激活时间字符串格式yyyy-MM-dd HH:mm:ss
/// </summary>
[Newtonsoft.Json.JsonProperty("active_time")]
[System.Text.Json.Serialization.JsonPropertyName("active_time")]
public string ActiveTimeString { get; set; } = default!;
/// <summary>
/// 获取或设置 CPU 信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("cpu_info")]
[System.Text.Json.Serialization.JsonPropertyName("cpu_info")]
public string CPUInfo { get; set; } = default!;
/// <summary>
/// 获取或设置 CPU 占用。
/// </summary>
[Newtonsoft.Json.JsonProperty("cpu_usage")]
[System.Text.Json.Serialization.JsonPropertyName("cpu_usage")]
public string CPUUsage { get; set; } = default!;
/// <summary>
/// 获取或设置 GPU 信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("gpu_info")]
[System.Text.Json.Serialization.JsonPropertyName("gpu_info")]
public string GPUInfo { get; set; } = default!;
/// <summary>
/// 获取或设置网络类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("net_type")]
[System.Text.Json.Serialization.JsonPropertyName("net_type")]
public string NetworkType { get; set; } = default!;
/// <summary>
/// 获取或设置内存信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("memory_info")]
[System.Text.Json.Serialization.JsonPropertyName("memory_info")]
public string MemoryInfo { get; set; } = default!;
/// <summary>
/// 获取或设置显示器刷新率。
/// </summary>
[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!;
/// <summary>
/// 获取或设置摄像头型号。
/// </summary>
[Newtonsoft.Json.JsonProperty("camera_model")]
[System.Text.Json.Serialization.JsonPropertyName("camera_model")]
public string CameraModel { get; set; } = default!;
/// <summary>
/// 获取或设置是否开启视频镜像。
/// </summary>
[Newtonsoft.Json.JsonProperty("enable_video_mirror")]
[System.Text.Json.Serialization.JsonPropertyName("enable_video_mirror")]
public bool EnableVideoMirror { get; set; }
/// <summary>
/// 获取或设置麦克风信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("microphone_info")]
[System.Text.Json.Serialization.JsonPropertyName("microphone_info")]
public string MicrophoneInfo { get; set; } = default!;
/// <summary>
/// 获取或设置扬声器信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("speaker_info")]
[System.Text.Json.Serialization.JsonPropertyName("speaker_info")]
public string SpeakerInfo { get; set; } = default!;
}
public class PMIInfo
{
/// <summary>
/// 获取或设置专属 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("pmi_code")]
[System.Text.Json.Serialization.JsonPropertyName("pmi_code")]
public string PMICode { get; set; } = default!;
/// <summary>
/// 获取或设置入会密码。
/// </summary>
[Newtonsoft.Json.JsonProperty("pmi_pwd")]
[System.Text.Json.Serialization.JsonPropertyName("pmi_pwd")]
public string PMIPassword { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置基本信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("basic_info")]
[System.Text.Json.Serialization.JsonPropertyName("basic_info")]
public Types.BasicInfo BasicInfo { get; set; } = default!;
/// <summary>
/// 获取或设置帐号信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_info")]
[System.Text.Json.Serialization.JsonPropertyName("account_info")]
public Types.AccountInfo AccountInfo { get; set; } = default!;
/// <summary>
/// 获取或设置硬件信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("hardware_info")]
[System.Text.Json.Serialization.JsonPropertyName("hardware_info")]
public Types.HardwareInfo HardwareInfo { get; set; } = default!;
/// <summary>
/// 获取或设置 PMI 信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("pmi_info")]
[System.Text.Json.Serialization.JsonPropertyName("pmi_info")]
public Types.PMIInfo PMIInfo { get; set; } = default!;
/// <summary>
/// 获取或设置告警通知状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("monitor_status")]
[System.Text.Json.Serialization.JsonPropertyName("monitor_status")]
public int MonitorStatus { get; set; }
/// <summary>
/// 获取或设置预定状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("scheduled_status")]
[System.Text.Json.Serialization.JsonPropertyName("scheduled_status")]
public int ScheduledStatus { get; set; }
/// <summary>
/// 获取或设置是否允许被呼叫。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_allow_call")]
[System.Text.Json.Serialization.JsonPropertyName("is_allow_call")]
public bool IsAllowCall { get; set; }
}
}

View File

@@ -0,0 +1,11 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_inventory 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsGetInventoryRequest : WechatWorkRequest
{
}
}

View File

@@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_inventory 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsGetInventoryResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置普通设备数。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_count")]
[System.Text.Json.Serialization.JsonPropertyName("normal_count")]
public int NormalCount { get; set; }
/// <summary>
/// 获取或设置专款设备数。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_count")]
[System.Text.Json.Serialization.JsonPropertyName("special_count")]
public int SpecialCount { get; set; }
/// <summary>
/// 获取或设置普通设备使用数。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_used_count")]
[System.Text.Json.Serialization.JsonPropertyName("normal_used_count")]
public int NormalUsedCount { get; set; }
/// <summary>
/// 获取或设置专款设备使用数。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_used_count")]
[System.Text.Json.Serialization.JsonPropertyName("special_used_count")]
public int SpecialUsedCount { get; set; }
/// <summary>
/// 获取或设置普通设备过期数。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_expired_count")]
[System.Text.Json.Serialization.JsonPropertyName("normal_expired_count")]
public int NormalExpiredCount { get; set; }
/// <summary>
/// 获取或设置专款设备过期数。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_expired_count")]
[System.Text.Json.Serialization.JsonPropertyName("special_expired_count")]
public int SpecialExpiredCount { get; set; }
}
}

View File

@@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_response_status 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsGetResponseStatusRequest : WechatWorkRequest
{
public static class Types
{
public class MRA : CgibinMeetingRoomsCallRequest.Types.MRA
{
}
}
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID。与字段 <see cref="MRA"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string? MeetingRoomId { get; set; }
/// <summary>
/// 获取或设置 MRA 信息。与字段 <see cref="MeetingRoomId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("mra_address")]
[System.Text.Json.Serialization.JsonPropertyName("mra_address")]
public Types.MRA? MRA { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/get_response_status 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsGetResponseStatusResponse : WechatWorkResponse
{
/// <summary>
/// 获取或设置应答状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置最近一次应答时间字符串格式yyyy/MM/dd HH:mm:ss
/// </summary>
[Newtonsoft.Json.JsonProperty("response_time")]
[System.Text.Json.Serialization.JsonPropertyName("response_time")]
public string LastResponseTimeString { get; set; } = default!;
}
}

View File

@@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_controllers 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsListControllersRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置控制器名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("controller_name")]
[System.Text.Json.Serialization.JsonPropertyName("controller_name")]
public string? ControllerName { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@@ -0,0 +1,168 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_controllers 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsListControllersResponse : WechatWorkResponse
{
public static class Types
{
public class Controller
{
public static class Types
{
public class MonitorInfo
{
/// <summary>
/// 获取或设置摄像头状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("camera_status")]
[System.Text.Json.Serialization.JsonPropertyName("camera_status")]
public bool CameraStatus { get; set; }
/// <summary>
/// 获取或设置麦克风状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("microphone_status")]
[System.Text.Json.Serialization.JsonPropertyName("microphone_status")]
public bool MicrophoneStatus { get; set; }
/// <summary>
/// 获取或设置扬声器状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("speaker_status")]
[System.Text.Json.Serialization.JsonPropertyName("speaker_status")]
public bool SpeakerStatus { get; set; }
}
}
/// <summary>
/// 获取或设置 Rooms ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_id")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_id")]
public string RoomsId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置会议室地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_location")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")]
public string MeetingRoomLocation { get; set; } = default!;
/// <summary>
/// 获取或设置厂商名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("manufacture_name")]
[System.Text.Json.Serialization.JsonPropertyName("manufacture_name")]
public string ManufactureName { get; set; } = default!;
/// <summary>
/// 获取或设置控制器名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("controller_name")]
[System.Text.Json.Serialization.JsonPropertyName("controller_name")]
public string ControllerName { get; set; } = default!;
/// <summary>
/// 获取或设置控制器型号。
/// </summary>
[Newtonsoft.Json.JsonProperty("controller_model")]
[System.Text.Json.Serialization.JsonPropertyName("controller_model")]
public string ControllerModel { get; set; } = default!;
/// <summary>
/// 获取或设置应用版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("app_version")]
[System.Text.Json.Serialization.JsonPropertyName("app_version")]
public string AppVersion { get; set; } = default!;
/// <summary>
/// 获取或设置固件版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("framework_version")]
[System.Text.Json.Serialization.JsonPropertyName("framework_version")]
public string FrameworkVersion { get; set; } = default!;
/// <summary>
/// 获取或设置设备状态。
/// </summary>
[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!;
/// <summary>
/// 获取或设置 IP 地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("ip_address")]
[System.Text.Json.Serialization.JsonPropertyName("ip_address")]
public string IpAddress { get; set; } = default!;
/// <summary>
/// 获取或设置 MAC 地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("mac_address")]
[System.Text.Json.Serialization.JsonPropertyName("mac_address")]
public string MacAddress { get; set; } = default!;
/// <summary>
/// 获取或设置 CPU 类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("cpu_type")]
[System.Text.Json.Serialization.JsonPropertyName("cpu_type")]
public string CPUType { get; set; } = default!;
/// <summary>
/// 获取或设置 CPU 占用。
/// </summary>
[Newtonsoft.Json.JsonProperty("cpu_usage")]
[System.Text.Json.Serialization.JsonPropertyName("cpu_usage")]
public string CPUUsage { get; set; } = default!;
/// <summary>
/// 获取或设置网络类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("network_type")]
[System.Text.Json.Serialization.JsonPropertyName("network_type")]
public string NetworkType { get; set; } = default!;
/// <summary>
/// 获取或设置内存占用。
/// </summary>
[Newtonsoft.Json.JsonProperty("mem_usage")]
[System.Text.Json.Serialization.JsonPropertyName("mem_usage")]
public string MemoryUsage { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置控制器列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("controller_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("controller_info_list")]
public Types.Controller[] ControllerList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_devices 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsListDevicesRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string? MeetingRoomName { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@@ -0,0 +1,118 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_devices 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsListDevicesResponse : WechatWorkResponse
{
public static class Types
{
public class Device
{
public static class Types
{
public class MonitorInfo
{
/// <summary>
/// 获取或设置摄像头状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("camera_status")]
[System.Text.Json.Serialization.JsonPropertyName("camera_status")]
public bool CameraStatus { get; set; }
/// <summary>
/// 获取或设置麦克风状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("microphone_status")]
[System.Text.Json.Serialization.JsonPropertyName("microphone_status")]
public bool MicrophoneStatus { get; set; }
/// <summary>
/// 获取或设置扬声器状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("speaker_status")]
[System.Text.Json.Serialization.JsonPropertyName("speaker_status")]
public bool SpeakerStatus { get; set; }
}
}
/// <summary>
/// 获取或设置 Rooms ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_id")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_id")]
public string RoomsId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置会议室地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_location")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")]
public string MeetingRoomLocation { get; set; } = default!;
/// <summary>
/// 获取或设置设备型号。
/// </summary>
[Newtonsoft.Json.JsonProperty("device_model")]
[System.Text.Json.Serialization.JsonPropertyName("device_model")]
public string DeviceModel { get; set; } = default!;
/// <summary>
/// 获取或设置应用版本。
/// </summary>
[Newtonsoft.Json.JsonProperty("app_version")]
[System.Text.Json.Serialization.JsonPropertyName("app_version")]
public string AppVersion { get; set; } = default!;
/// <summary>
/// 获取或设置会议室状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_status")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")]
public int MeetingRoomStatus { get; set; }
/// <summary>
/// 获取或设置设备健康信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("device_monitor_info")]
[System.Text.Json.Serialization.JsonPropertyName("device_monitor_info")]
public Types.MonitorInfo MonitorInfo { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置设备列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("device_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("device_info_list")]
public Types.Device[] DeviceList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_meetings 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsListMeetingsRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室 ID。与字段 <see cref="RoomsId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string? MeetingRoomId { get; set; }
/// <summary>
/// 获取或设置 Rooms ID。与字段 <see cref="MeetingRoomId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("rooms_id")]
[System.Text.Json.Serialization.JsonPropertyName("rooms_id")]
public string? RoomsId { get; set; }
/// <summary>
/// 获取或设置查询起始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public long? StartTimestamp { get; set; }
/// <summary>
/// 获取或设置查询结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public long? EndTimestamp { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@@ -0,0 +1,84 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list_meetings 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsListMeetingsResponse : WechatWorkResponse
{
public static class Types
{
public class Meeting
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = default!;
/// <summary>
/// 获取或设置入会码。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_code")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_code")]
public string MeetingCode { get; set; } = default!;
/// <summary>
/// 获取或设置会议主题。
/// </summary>
[Newtonsoft.Json.JsonProperty("subject")]
[System.Text.Json.Serialization.JsonPropertyName("subject")]
public string Subject { get; set; } = default!;
/// <summary>
/// 获取或设置会议类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_type")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_type")]
public int MeetingType { get; set; }
/// <summary>
/// 获取或设置会议状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public string Status { get; set; } = default!;
/// <summary>
/// 获取或设置会议开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public long StartTimestamp { get; set; }
/// <summary>
/// 获取或设置会议结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public long EndTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置会议列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_info_list")]
public Types.Meeting[] MeetingList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsListRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string? MeetingRoomName { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@@ -0,0 +1,98 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/list 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsListResponse : WechatWorkResponse
{
public static class Types
{
public class MeetingRoom
{
/// <summary>
/// 获取或设置会议室 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id")]
public string MeetingRoomId { get; set; } = default!;
/// <summary>
/// 获取或设置会议室名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_name")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_name")]
public string MeetingRoomName { get; set; } = default!;
/// <summary>
/// 获取或设置会议室地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_location")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_location")]
public string MeetingRoomLocation { get; set; } = default!;
/// <summary>
/// 获取或设置账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_type")]
[System.Text.Json.Serialization.JsonPropertyName("account_type")]
public int AccountType { get; set; }
/// <summary>
/// 获取或设置激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = default!;
/// <summary>
/// 获取或设置容纳人数。
/// </summary>
[Newtonsoft.Json.JsonProperty("participant_number")]
[System.Text.Json.Serialization.JsonPropertyName("participant_number")]
public int ParticipantNumber { get; set; }
/// <summary>
/// 获取或设置会议室状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_status")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置预定状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("scheduled_status")]
[System.Text.Json.Serialization.JsonPropertyName("scheduled_status")]
public int ScheduledStatus { get; set; }
/// <summary>
/// 获取或设置是否允许被呼叫。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_allow_call")]
[System.Text.Json.Serialization.JsonPropertyName("is_allow_call")]
public bool IsAllowCall { get; set; }
}
}
/// <summary>
/// 获取或设置会议室列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_list")]
public Types.MeetingRoom[] MeetingRoomList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/release 接口的请求。</para>
/// </summary>
public class CgibinMeetingRoomsReleaseRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置会议 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("meetingid")]
[System.Text.Json.Serialization.JsonPropertyName("meetingid")]
public string MeetingId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置会议室 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("meeting_room_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("meeting_room_id_list")]
public IList<string> MeetingRoomIdList { get; set; } = new List<string>();
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/meeting/rooms/release 接口的响应。</para>
/// </summary>
public class CgibinMeetingRoomsReleaseResponse : WechatWorkResponse
{
}
}