diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs
index ea6546e3..f33ae622 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs
@@ -80,8 +80,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
///
/// 异步调用 [GET] /cgi-bin/externalcontact/get 接口。
- /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92113
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92114
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92265
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92322
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91670
///
///
///
@@ -235,6 +237,49 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
+ ///
+ /// 异步调用 [POST] /cgi-bin/externalcontact/convert_to_openid 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92323
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92292
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinExternalContactConvertToOpenIdAsync(this WechatWorkClient client, Models.CgibinExternalContactConvertToOpenIdRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "externalcontact", "convert_to_openid")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/externalcontact/batch_to_external_userid 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92506
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinExternalContactBatchToExternalUserIdAsync(this WechatWorkClient client, Models.CgibinExternalContactBatchToExternalUserIdRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "externalcontact", "batch_to_external_userid")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
#region ContactWay
///
/// 异步调用 [POST] /cgi-bin/externalcontact/add_contact_way 接口。
@@ -937,6 +982,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
///
/// 异步调用 [POST] /cgi-bin/externalcontact/message/send 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91609
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92321
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92291
///
///
///
@@ -958,5 +1005,73 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
+
+ #region Subscribe
+ ///
+ /// 异步调用 [GET] /cgi-bin/externalcontact/get_subscribe_qr_code 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92320
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92197
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinExternalContactGetSubscribeQrcodeAsync(this WechatWorkClient client, Models.CgibinExternalContactGetSubscribeQrcodeRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "externalcontact", "message", "get_subscribe_qr_code")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/externalcontact/set_subscribe_mode 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92318
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92290
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinExternalContactSetSubscribeModeAsync(this WechatWorkClient client, Models.CgibinExternalContactSetSubscribeModeRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "externalcontact", "message", "set_subscribe_mode")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/externalcontact/get_subscribe_mode 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92318
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92290
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinExternalContactGetSubscribeModeAsync(this WechatWorkClient client, Models.CgibinExternalContactGetSubscribeModeRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "externalcontact", "message", "get_subscribe_mode")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+ #endregion
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLivingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLivingExtensions.cs
index ff7531e7..63b16dc0 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLivingExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLivingExtensions.cs
@@ -81,6 +81,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// 异步调用 [POST] /cgi-bin/living/delete_replay_data 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93874
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93719
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93743
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93860
///
///
///
@@ -170,6 +172,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// 异步调用 [POST] /cgi-bin/living/get_user_all_livingid 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93634
/// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93714
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93739
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93856
///
///
///
@@ -197,7 +201,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
///
///
///
- public static async Task ExecuteCgibinLivingGetWatchStatAsync(this WechatWorkClient client, Models.CgibinLivingGetWatchStatRequest request, CancellationToken cancellationToken = default)
+ public static async Task ExecuteCgibinLivingGetWatchStatisticsAsync(this WechatWorkClient client, Models.CgibinLivingGetWatchStatisticsRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
@@ -207,7 +211,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
- return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs
new file mode 100644
index 00000000..535e66f3
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs
@@ -0,0 +1,606 @@
+using System;
+using System.Collections.Generic;
+using System.Net.Http;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Flurl;
+using Flurl.Http;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work
+{
+ public static class WechatWorkClientExecuteCgibinSchoolExtensions
+ {
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/set_teacher_view_mode 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92652
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolSetTeacherViewModeAsync(this WechatWorkClient client, Models.CgibinSchoolSetTeacherViewModeRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "set_teacher_view_mode")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/get_teacher_view_mode 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92652
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolGetTeacherViewModeAsync(this WechatWorkClient client, Models.CgibinSchoolGetTeacherViewModeRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "get_teacher_view_mode")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/set_arch_sync_mode 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92345
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92083
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolSetArchSyncModeAsync(this WechatWorkClient client, Models.CgibinSchoolSetArchSyncModeRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "set_arch_sync_mode")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/set_upgrade_info 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92949
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92950
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolSetUpgradeInfoAsync(this WechatWorkClient client, Models.CgibinSchoolSetUpgradeInfoRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "set_upgrade_info")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ #region User
+ #region UserStudent
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/create_student 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92325
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92035
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserCreateStudentAsync(this WechatWorkClient client, Models.CgibinSchoolUserCreateStudentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "create_student")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/user/delete_student 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92326
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92039
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserDeleteStudentAsync(this WechatWorkClient client, Models.CgibinSchoolUserDeleteStudentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "user", "delete_student")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("userid", request.StudentUserId);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/update_student 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92327
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92041
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserUpdateStudentAsync(this WechatWorkClient client, Models.CgibinSchoolUserUpdateStudentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "update_student")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/batch_create_student 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92328
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92037
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserBatchCreateStudentAsync(this WechatWorkClient client, Models.CgibinSchoolUserBatchCreateStudentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "batch_create_student")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/batch_delete_student 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92329
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92040
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserBatchDeleteStudentAsync(this WechatWorkClient client, Models.CgibinSchoolUserBatchDeleteStudentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "batch_delete_student")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/batch_update_student 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92330
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92042
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserBatchUpdateStudentAsync(this WechatWorkClient client, Models.CgibinSchoolUserBatchUpdateStudentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "batch_update_student")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ #endregion
+
+ #region UserParent
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/create_parent 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92331
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92077
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserCreateParentAsync(this WechatWorkClient client, Models.CgibinSchoolUserCreateParentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "create_parent")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/user/delete_parent 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92332
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92079
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserDeleteParentAsync(this WechatWorkClient client, Models.CgibinSchoolUserDeleteParentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "user", "delete_parent")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("userid", request.ParentUserId);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/update_parent 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92333
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92081
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserUpdateParentAsync(this WechatWorkClient client, Models.CgibinSchoolUserUpdateParentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "update_parent")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/batch_create_parent 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92334
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92078
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserBatchCreateParentAsync(this WechatWorkClient client, Models.CgibinSchoolUserBatchCreateParentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "batch_create_parent")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/batch_delete_parent 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92335
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92080
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserBatchDeleteParentAsync(this WechatWorkClient client, Models.CgibinSchoolUserBatchDeleteParentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "batch_delete_parent")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/user/batch_update_parent 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92336
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92082
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserBatchUpdateParentAsync(this WechatWorkClient client, Models.CgibinSchoolUserBatchUpdateParentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "user", "batch_update_parent")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ #endregion
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/user/get 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92337
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92038
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserGetAsync(this WechatWorkClient client, Models.CgibinSchoolUserGetRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "user", "get")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("userid", request.StudentOrParentUserId);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/user/list 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92338
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92043
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserListAsync(this WechatWorkClient client, Models.CgibinSchoolUserListRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "user", "list")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("department_id", request.DeparmentId);
+
+ if (request.RequireFetchChild.HasValue)
+ flurlReq.SetQueryParam("fetch_child", request.RequireFetchChild.Value ? 1 : 0);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/user/list_parent 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92446
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolUserListParentAsync(this WechatWorkClient client, Models.CgibinSchoolUserListParentRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "user", "list_parent")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("department_id", request.DeparmentId);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+ #endregion
+
+ #region Department
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/department/create 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92340
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92296
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolDepartmentCreateAsync(this WechatWorkClient client, Models.CgibinSchoolDepartmentCreateRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "department", "create")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/department/update 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92341
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92297
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolDepartmentUpdateAsync(this WechatWorkClient client, Models.CgibinSchoolDepartmentUpdateRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "department", "update")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/department/delete 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92342
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92298
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolDepartmentDeleteAsync(this WechatWorkClient client, Models.CgibinSchoolDepartmentDeleteRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "department", "delete")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("id", request.DepartmentId);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/department/list 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92343
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92299
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolDepartmentListAsync(this WechatWorkClient client, Models.CgibinSchoolDepartmentListRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "department", "list")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ if (request.DepartmentId.HasValue)
+ flurlReq.SetQueryParam("id", request.DepartmentId);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+ #endregion
+
+ #region Living
+ ///
+ /// 异步调用 [GET] /cgi-bin/school/living/get_living_info 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93740
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93857
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolLivingGetLivingInfoAsync(this WechatWorkClient client, Models.CgibinSchoolLivingGetLivingInfoRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Get, "cgi-bin", "school", "living", "get_living_info")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("livingid", request.LivingId);
+
+ return await client.SendRequestAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/living/get_watch_stat 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93741
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93858
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolLivingGetWatchStatisticsAsync(this WechatWorkClient client, Models.CgibinSchoolLivingGetWatchStatisticsRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "living", "get_watch_stat")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/school/living/get_unwatch_stat 接口。
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93742
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93859
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinSchoolLivingGetUnwatchStatisticsAsync(this WechatWorkClient client, Models.CgibinSchoolLivingGetUnwatchStatisticsRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(HttpMethod.Post, "cgi-bin", "school", "living", "get_unwatch_stat")
+ .SetOptions(request)
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ #endregion
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs
index 42038aad..59464977 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs
@@ -223,6 +223,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// 异步调用 [GET] /cgi-bin/user/getuserinfo 接口。
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91023
/// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91437
+ /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91707
+ /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91711
///
///
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserResponse.cs
index 7278f3ad..abd9da29 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchGetByUserResponse.cs
@@ -77,7 +77,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public string? State { get; set; }
///
- /// 获取或设置发起添加的用户账号。
+ /// 获取或设置发起添加的成员账号。
///
[Newtonsoft.Json.JsonProperty("oper_userid")]
[System.Text.Json.Serialization.JsonPropertyName("oper_userid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchToExternalUserIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchToExternalUserIdRequest.cs
new file mode 100644
index 00000000..9d33cc08
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchToExternalUserIdRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/externalcontact/batch_to_external_userid 接口的请求。
+ ///
+ public class CgibinExternalContactBatchToExternalUserIdRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置手机号码列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("mobiles")]
+ [System.Text.Json.Serialization.JsonPropertyName("mobiles")]
+ public IList MobileNumberList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchToExternalUserIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchToExternalUserIdResponse.cs
new file mode 100644
index 00000000..93670625
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactBatchToExternalUserIdResponse.cs
@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/externalcontact/batch_to_external_userid 接口的响应。
+ ///
+ public class CgibinExternalContactBatchToExternalUserIdResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Result
+ {
+ ///
+ /// 获取或设置错误码。
+ ///
+ [Newtonsoft.Json.JsonProperty("errcode")]
+ [System.Text.Json.Serialization.JsonPropertyName("errcode")]
+ public int ErrorCode { get; set; }
+
+ ///
+ /// 获取或设置错误信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("errmsg")]
+ [System.Text.Json.Serialization.JsonPropertyName("errmsg")]
+ public string? ErrorMessage { get; set; }
+
+ ///
+ /// 获取或设置外部联系人账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("external_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("external_userid")]
+ public string? ExternalUserId { get; set; }
+
+ ///
+ /// 获取或设置由企业或服务商在导入家长时指定的关键字。
+ ///
+ [Newtonsoft.Json.JsonProperty("foreign_key")]
+ [System.Text.Json.Serialization.JsonPropertyName("foreign_key")]
+ public string? ForergnKey { get; set; }
+
+ ///
+ /// 获取或设置手机号码。
+ ///
+ [Newtonsoft.Json.JsonProperty("mobile")]
+ [System.Text.Json.Serialization.JsonPropertyName("mobile")]
+ public string? MobileNumber { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置转换成功结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("success_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("success_list")]
+ public Types.Result[] SuccessResultList { get; set; } = default!;
+
+ ///
+ /// 获取或设置转换失败结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("fail_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("fail_list")]
+ public Types.Result[] FailResultList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactConvertToOpenIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactConvertToOpenIdRequest.cs
new file mode 100644
index 00000000..3beeb3a4
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactConvertToOpenIdRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/externalcontact/convert_to_openid 接口的请求。
+ ///
+ public class CgibinExternalContactConvertToOpenIdRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置外部联系人账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("external_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("external_userid")]
+ public string ExternalUserId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactConvertToOpenIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactConvertToOpenIdResponse.cs
new file mode 100644
index 00000000..dd34a7ba
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactConvertToOpenIdResponse.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/externalcontact/convert_to_openid 接口的响应。
+ ///
+ public class CgibinExternalContactConvertToOpenIdResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置用户 OpenId。
+ ///
+ [Newtonsoft.Json.JsonProperty("openid")]
+ [System.Text.Json.Serialization.JsonPropertyName("openid")]
+ public string OpenId { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetResponse.cs
index 5e993989..41cd7df6 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetResponse.cs
@@ -14,6 +14,30 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
public static class Types
{
+ public class Subscriber
+ {
+ ///
+ /// 获取或设置学校为家长设置的企业标签 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("tag_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("tag_id")]
+ public string[]? TagId { get; set; }
+
+ ///
+ /// 获取或设置学校为家长设置的备注。
+ ///
+ [Newtonsoft.Json.JsonProperty("remark")]
+ [System.Text.Json.Serialization.JsonPropertyName("remark")]
+ public string? Remark { get; set; }
+
+ ///
+ /// 获取或设置学校为家长设置的备注手机号码列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("remark_mobiles")]
+ [System.Text.Json.Serialization.JsonPropertyName("remark_mobiles")]
+ public string[]? RemarkMobileNumberList { get; set; }
+ }
+
public class ExternalProfile : CgibinUserGetResponse.Types.ExternalProfile
{
}
@@ -33,6 +57,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = default!;
+ ///
+ /// 获取或设置由企业或服务商在导入家长时指定的关键字。
+ ///
+ [Newtonsoft.Json.JsonProperty("foreign_key")]
+ [System.Text.Json.Serialization.JsonPropertyName("foreign_key")]
+ public string? ForeignKey { get; set; }
+
///
/// 获取或设置外部联系人 UnionId。
///
@@ -82,6 +113,22 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
[System.Text.Json.Serialization.JsonPropertyName("corp_full_name")]
public string? CorpFullName { get; set; }
+ ///
+ /// 获取或设置是否关注了“学校通知”。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_subscribe")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("is_subscribe")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))]
+ public bool? IsSubscribe { get; set; }
+
+ ///
+ /// 获取或设置学校为家长设置的信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("subscriber_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("subscriber_info")]
+ public Types.Subscriber? Subscriber { get; set; }
+
///
/// 获取或设置对外属性信息。
///
@@ -190,7 +237,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public string? State { get; set; }
///
- /// 获取或设置发起添加的用户账号。
+ /// 获取或设置发起添加的成员账号。
///
[Newtonsoft.Json.JsonProperty("oper_userid")]
[System.Text.Json.Serialization.JsonPropertyName("oper_userid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataResponse.cs
index 25f46aa3..351e6858 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/CgibinExternalContactGetUserBehaviorDataResponse.cs
@@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("stat_time")]
[System.Text.Json.Serialization.JsonPropertyName("stat_time")]
- public long StatTimestamp { get; set; }
+ public long StatisticsTimestamp { get; set; }
///
/// 获取或设置聊天数。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetRequest.cs
index a62a7135..0d1d84de 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetRequest.cs
@@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("chat_id")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id")]
- public string ChatId { get; set; } = string.Empty;
+ public string GroupChatId { get; set; } = string.Empty;
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetResponse.cs
index c7dfba53..c27aca58 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatGetResponse.cs
@@ -72,7 +72,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public long JoinTimestamp { get; set; }
}
- public class Admin
+ public class Administrator
{
///
/// 获取或设置管理员成员账号。
@@ -88,7 +88,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("chat_id")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id")]
- public string ChatId { get; set; } = default!;
+ public string GroupChatId { get; set; } = default!;
///
/// 获取或设置客户群名称。
@@ -123,7 +123,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("admin_list")]
[System.Text.Json.Serialization.JsonPropertyName("admin_list")]
- public Types.Admin[] AdminList { get; set; } = default!;
+ public Types.Administrator[] AdministratorList { get; set; } = default!;
///
/// 获取或设置创建时间戳。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListResponse.cs
index 33fbf59d..9ac59819 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatListResponse.cs
@@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("chat_id")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id")]
- public string ChatId { get; set; } = default!;
+ public string GroupChatId { get; set; } = default!;
///
/// 获取或设置跟进状态。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferRequest.cs
index df61f067..2634e508 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferRequest.cs
@@ -13,7 +13,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("chat_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id_list")]
- public IList ChatIdList { get; set; } = new List();
+ public IList GroupChatIdList { get; set; } = new List();
///
/// 获取或设置新群主成员账号。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferResponse.cs
index 61bf49cd..03f4b816 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/CgibinExternalContactGroupChatTransferResponse.cs
@@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("chat_id")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id")]
- public string ChatId { get; set; } = default!;
+ public string GroupChatId { get; set; } = default!;
///
/// 获取或设置错误码。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayResponse.cs
index 01bcd988..8d02684b 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupChat/Statistic/CgibinExternalContactGroupChatStatisticGroupByDayResponse.cs
@@ -24,7 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("stat_time")]
[System.Text.Json.Serialization.JsonPropertyName("stat_time")]
- public long StatTimestamp { get; set; }
+ public long StatisticsTimestamp { get; set; }
///
/// 获取或设置统计数据。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultResponse.cs
index 745d7942..9543c751 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/GroupMessage/CgibinExternalContactGetGroupMessageSendResultResponse.cs
@@ -24,7 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("chat_id")]
[System.Text.Json.Serialization.JsonPropertyName("chat_id")]
- public string? ChatId { get; set; }
+ public string? GroupChatId { get; set; }
///
/// 获取或设置外部联系人账号。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeModeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeModeRequest.cs
new file mode 100644
index 00000000..0df8f54a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeModeRequest.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/externalcontact/get_subscribe_mode 接口的请求。
+ ///
+ public class CgibinExternalContactGetSubscribeModeRequest : WechatWorkRequest
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeModeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeModeResponse.cs
new file mode 100644
index 00000000..3898daa0
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeModeResponse.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/externalcontact/get_subscribe_mode 接口的响应。
+ ///
+ public class CgibinExternalContactGetSubscribeModeResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置关注模式。
+ ///
+ [Newtonsoft.Json.JsonProperty("subscribe_mode")]
+ [System.Text.Json.Serialization.JsonPropertyName("subscribe_mode")]
+ public int SubscribeMode { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeQrcodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeQrcodeRequest.cs
new file mode 100644
index 00000000..04ef3e6c
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeQrcodeRequest.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/externalcontact/get_subscribe_qr_code 接口的请求。
+ ///
+ public class CgibinExternalContactGetSubscribeQrcodeRequest : WechatWorkRequest
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeQrcodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeQrcodeResponse.cs
new file mode 100644
index 00000000..fdde50cb
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactGetSubscribeQrcodeResponse.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/externalcontact/get_subscribe_qr_code 接口的响应。
+ ///
+ public class CgibinExternalContactGetSubscribeQrcodeResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置大尺寸二维码 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("qrcode_big")]
+ [System.Text.Json.Serialization.JsonPropertyName("qrcode_big")]
+ public string BigSizeQrcodeUrl { get; set; } = default!;
+
+ ///
+ /// 获取或设置中尺寸二维码 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("qrcode_middle")]
+ [System.Text.Json.Serialization.JsonPropertyName("qrcode_middle")]
+ public string MiddleSizeQrcodeUrl { get; set; } = default!;
+
+ ///
+ /// 获取或设置小尺寸二维码 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("qrcode_thumb")]
+ [System.Text.Json.Serialization.JsonPropertyName("qrcode_thumb")]
+ public string SmallSizeQrcodeUrl { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactSetSubscribeModeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactSetSubscribeModeRequest.cs
new file mode 100644
index 00000000..4fa84fae
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactSetSubscribeModeRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/externalcontact/set_subscribe_mode 接口的请求。
+ ///
+ public class CgibinExternalContactSetSubscribeModeRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置关注模式。
+ ///
+ [Newtonsoft.Json.JsonProperty("subscribe_mode")]
+ [System.Text.Json.Serialization.JsonPropertyName("subscribe_mode")]
+ public int SubscribeMode { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactSetSubscribeModeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactSetSubscribeModeResponse.cs
new file mode 100644
index 00000000..f1c7482e
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Subscribe/CgibinExternalContactSetSubscribeModeResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/externalcontact/set_subscribe_mode 接口的响应。
+ ///
+ public class CgibinExternalContactSetSubscribeModeResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerResponse.cs
index 284b47df..07a44ccd 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinExternalContact/Transfer/CgibinExternalContactTransferCustomerResponse.cs
@@ -10,7 +10,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
public static class Types
{
- public class Customer
+ public class Result
{
///
/// 获取或设置错误码。
@@ -29,10 +29,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
}
///
- /// 获取或设置客户列表。
+ /// 获取或设置结果列表。
///
[Newtonsoft.Json.JsonProperty("customer")]
[System.Text.Json.Serialization.JsonPropertyName("customer")]
- public Types.Customer[] CustomerList { get; set; } = default!;
+ public Types.Result[] ResultList { get; set; } = default!;
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoRequest.cs
index c616b954..6d5f6d41 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoRequest.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
///
- /// 表示 [GET] /cgi-bin/meeting/get_living_info 接口的请求。
+ /// 表示 [GET] /cgi-bin/living/get_living_info 接口的请求。
///
public class CgibinLivingGetLivingInfoRequest : WechatWorkRequest
{
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoResponse.cs
index f3376a53..682f679b 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingInfoResponse.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
///
- /// 表示 [GET] /cgi-bin/meeting/get_living_info 接口的响应。
+ /// 表示 [GET] /cgi-bin/living/get_living_info 接口的响应。
///
public class CgibinLivingGetLivingInfoResponse : WechatWorkResponse
{
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoRequest.cs
index f57d7a82..a9bd0724 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoRequest.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
///
- /// 表示 [POST] /cgi-bin/meeting/get_living_share_info 接口的请求。
+ /// 表示 [POST] /cgi-bin/living/get_living_share_info 接口的请求。
///
public class CgibinLivingGetLivingShareInfoRequest : WechatWorkRequest
{
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoResponse.cs
index 7f481b4d..f51a0d0f 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetLivingShareInfoResponse.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
///
- /// 表示 [POST] /cgi-bin/meeting/get_living_share_info 接口的响应。
+ /// 表示 [POST] /cgi-bin/living/get_living_share_info 接口的响应。
///
public class CgibinLivingGetLivingShareInfoResponse : WechatWorkResponse
{
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatisticsRequest.cs
similarity index 85%
rename from src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatRequest.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatisticsRequest.cs
index be49af50..e324ac2d 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatisticsRequest.cs
@@ -6,7 +6,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
/// 表示 [POST] /cgi-bin/living/get_watch_stat 接口的请求。
///
- public class CgibinLivingGetWatchStatRequest : WechatWorkRequest
+ public class CgibinLivingGetWatchStatisticsRequest : WechatWorkRequest
{
///
/// 获取或设置直播 ID。
@@ -20,6 +20,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("next_key")]
[System.Text.Json.Serialization.JsonPropertyName("next_key")]
- public string? NextKey { get; set; }
+ public string? NextCursor { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatisticsResponse.cs
similarity index 98%
rename from src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatResponse.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatisticsResponse.cs
index 866dacf1..bf8a2e14 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLiving/CgibinLivingGetWatchStatisticsResponse.cs
@@ -6,7 +6,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
/// 表示 [POST] /cgi-bin/living/get_watch_stat 接口的响应。
///
- public class CgibinLivingGetWatchStatResponse : WechatWorkResponse
+ public class CgibinLivingGetWatchStatisticsResponse : WechatWorkResponse
{
public static class Types
{
@@ -136,6 +136,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("next_key")]
[System.Text.Json.Serialization.JsonPropertyName("next_key")]
- public string? NextKey { get; set; }
+ public string? NextCursor { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMiniProgram/CgibinMiniProgramTransferSessionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMiniProgram/CgibinMiniProgramTransferSessionRequest.cs
index ef08fbe1..5ac34aa3 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMiniProgram/CgibinMiniProgramTransferSessionRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMiniProgram/CgibinMiniProgramTransferSessionRequest.cs
@@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public class CgibinMiniProgramTransferSessionRequest : WechatWorkRequest
{
///
- /// 获取或设置用户账号。
+ /// 获取或设置成员账号。
///
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMiniProgram/CgibinMiniProgramTransferSessionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMiniProgram/CgibinMiniProgramTransferSessionResponse.cs
index 3728451a..23e10531 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMiniProgram/CgibinMiniProgramTransferSessionResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMiniProgram/CgibinMiniProgramTransferSessionResponse.cs
@@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public class CgibinMiniProgramTransferSessionResponse : WechatWorkResponse
{
///
- /// 获取或设置下级企业的用户账号。
+ /// 获取或设置下级企业的成员账号。
///
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetTeacherViewModeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetTeacherViewModeRequest.cs
new file mode 100644
index 00000000..d7e441e5
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetTeacherViewModeRequest.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/get_teacher_view_mode 接口的请求。
+ ///
+ public class CgibinSchoolGetTeacherViewModeRequest : WechatWorkRequest
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetTeacherViewModeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetTeacherViewModeResponse.cs
new file mode 100644
index 00000000..7be38519
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolGetTeacherViewModeResponse.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/get_teacher_view_mode 接口的响应。
+ ///
+ public class CgibinSchoolGetTeacherViewModeResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置查看模式。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_mode")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_mode")]
+ public int ViewMode { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetArchSyncModeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetArchSyncModeRequest.cs
new file mode 100644
index 00000000..f17b3410
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetArchSyncModeRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/set_arch_sync_mode 接口的请求。
+ ///
+ public class CgibinSchoolSetArchSyncModeRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置家校通讯录同步模式。
+ ///
+ [Newtonsoft.Json.JsonProperty("arch_sync_mode")]
+ [System.Text.Json.Serialization.JsonPropertyName("arch_sync_mode")]
+ public int ArchSyncMode { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetArchSyncModeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetArchSyncModeResponse.cs
new file mode 100644
index 00000000..f2479dcb
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetArchSyncModeResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/set_arch_sync_mode 接口的响应。
+ ///
+ public class CgibinSchoolSetArchSyncModeResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetTeacherViewModeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetTeacherViewModeRequest.cs
new file mode 100644
index 00000000..66b0941e
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetTeacherViewModeRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/set_teacher_view_mode 接口的请求。
+ ///
+ public class CgibinSchoolSetTeacherViewModeRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置查看模式。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_mode")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_mode")]
+ public int ViewMode { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetTeacherViewModeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetTeacherViewModeResponse.cs
new file mode 100644
index 00000000..2f71cfe6
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetTeacherViewModeResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/set_teacher_view_mode 接口的响应。
+ ///
+ public class CgibinSchoolSetTeacherViewModeResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetUpgradeInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetUpgradeInfoRequest.cs
new file mode 100644
index 00000000..26290391
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetUpgradeInfoRequest.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/set_upgrade_info 接口的请求。
+ ///
+ public class CgibinSchoolSetUpgradeInfoRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置是否自动升年级。
+ ///
+ [Newtonsoft.Json.JsonProperty("upgrade_switch")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("upgrade_switch")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))]
+ public bool UpgradeSwitch { get; set; }
+
+ ///
+ /// 获取或设置自动升年级的时间戳(仅月日有效)。
+ ///
+ [Newtonsoft.Json.JsonProperty("upgrade_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("upgrade_time")]
+ public long? UpgradeTimestamp { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetUpgradeInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetUpgradeInfoResponse.cs
new file mode 100644
index 00000000..e2035feb
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/CgibinSchoolSetUpgradeInfoResponse.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/set_upgrade_info 接口的响应。
+ ///
+ public class CgibinSchoolSetUpgradeInfoResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置下次升年级的时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("next_upgrade_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("next_upgrade_time")]
+ public long NextUpgradeTimestamp { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentCreateRequest.cs
new file mode 100644
index 00000000..09e4a67a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentCreateRequest.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/department/create 接口的请求。
+ ///
+ public class CgibinSchoolDepartmentCreateRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Administrator
+ {
+ ///
+ /// 获取或设置管理员成员账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string UserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置管理员类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int Type { get; set; }
+
+ ///
+ /// 获取或设置教师科目。
+ ///
+ [Newtonsoft.Json.JsonProperty("subject")]
+ [System.Text.Json.Serialization.JsonPropertyName("subject")]
+ public string? Subject { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置部门 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("id")]
+ [System.Text.Json.Serialization.JsonPropertyName("id")]
+ public int? DepartmentId { get; set; }
+
+ ///
+ /// 获取或设置部门名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string Name { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置部门类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int Type { get; set; }
+
+ ///
+ /// 获取或设置上级部门 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("parentid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parentid")]
+ public int ParentDepartmentId { get; set; }
+
+ ///
+ /// 获取或设置标准年级。
+ ///
+ [Newtonsoft.Json.JsonProperty("standard_grade")]
+ [System.Text.Json.Serialization.JsonPropertyName("standard_grade")]
+ public int? StandardGrade { get; set; }
+
+ ///
+ /// 获取或设置入学年份。
+ ///
+ [Newtonsoft.Json.JsonProperty("register_year")]
+ [System.Text.Json.Serialization.JsonPropertyName("register_year")]
+ public int? RegisterYear { get; set; }
+
+ ///
+ /// 获取或设置排序值。
+ ///
+ [Newtonsoft.Json.JsonProperty("order")]
+ [System.Text.Json.Serialization.JsonPropertyName("order")]
+ public int? Order { get; set; }
+
+ ///
+ /// 获取或设置部门管理员列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("department_admins")]
+ [System.Text.Json.Serialization.JsonPropertyName("department_admins")]
+ public IList? AdministratorList { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentCreateResponse.cs
new file mode 100644
index 00000000..2b3f361a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentCreateResponse.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/department/create 接口的响应。
+ ///
+ public class CgibinSchoolDepartmentCreateResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置部门 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("id")]
+ [System.Text.Json.Serialization.JsonPropertyName("id")]
+ public int DepartmentId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentDeleteRequest.cs
new file mode 100644
index 00000000..7d6485e3
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentDeleteRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/department/delete 接口的请求。
+ ///
+ public class CgibinSchoolDepartmentDeleteRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置部门 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public int DepartmentId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentDeleteResponse.cs
new file mode 100644
index 00000000..ba156d4c
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentDeleteResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/department/delete 接口的响应。
+ ///
+ public class CgibinSchoolDepartmentDeleteResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentListRequest.cs
new file mode 100644
index 00000000..8e7d87a9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentListRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/department/list 接口的请求。
+ ///
+ public class CgibinSchoolDepartmentListRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置指定部门 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public int? DepartmentId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentListResponse.cs
new file mode 100644
index 00000000..e7b6652d
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentListResponse.cs
@@ -0,0 +1,133 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/department/list 接口的响应。
+ ///
+ public class CgibinSchoolDepartmentListResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Department
+ {
+ public static class Types
+ {
+ public class Administrator
+ {
+ ///
+ /// 获取或设置管理员成员账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string UserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置管理员类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int Type { get; set; }
+
+ ///
+ /// 获取或设置教师科目。
+ ///
+ [Newtonsoft.Json.JsonProperty("subject")]
+ [System.Text.Json.Serialization.JsonPropertyName("subject")]
+ public string? Subject { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置部门 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("id")]
+ [System.Text.Json.Serialization.JsonPropertyName("id")]
+ public int DepartmentId { get; set; }
+
+ ///
+ /// 获取或设置部门名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string Name { get; set; } = default!;
+
+ ///
+ /// 获取或设置部门类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int Type { get; set; }
+
+ ///
+ /// 获取或设置上级部门 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("parentid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parentid")]
+ public int ParentDepartmentId { get; set; }
+
+ ///
+ /// 获取或设置标准年级。
+ ///
+ [Newtonsoft.Json.JsonProperty("standard_grade")]
+ [System.Text.Json.Serialization.JsonPropertyName("standard_grade")]
+ public int? StandardGrade { get; set; }
+
+ ///
+ /// 获取或设置入学年份。
+ ///
+ [Newtonsoft.Json.JsonProperty("register_year")]
+ [System.Text.Json.Serialization.JsonPropertyName("register_year")]
+ public int? RegisterYear { get; set; }
+
+ ///
+ /// 获取或设置排序值。
+ ///
+ [Newtonsoft.Json.JsonProperty("order")]
+ [System.Text.Json.Serialization.JsonPropertyName("order")]
+ public int? Order { get; set; }
+
+ ///
+ /// 获取或设置部门管理员列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("department_admins")]
+ [System.Text.Json.Serialization.JsonPropertyName("department_admins")]
+ public Types.Administrator[] AdministratorList { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否已毕业。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_graduated")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("is_graduated")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))]
+ public bool? IsGraduated { get; set; }
+
+ ///
+ /// 获取或设置是否开启客户群(即班级群)。
+ ///
+ [Newtonsoft.Json.JsonProperty("open_group_chat")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("open_group_chat")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))]
+ public bool? IsOpenGroupChat { get; set; }
+
+ ///
+ /// 获取或设置客户群(即班级群)ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("group_chat_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("group_chat_id")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedStringConverter))]
+ public string? GroupChatId { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置部门列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("departments")]
+ [System.Text.Json.Serialization.JsonPropertyName("departments")]
+ public Types.Department[] DepartmentList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentUpdateRequest.cs
new file mode 100644
index 00000000..80aeb40a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentUpdateRequest.cs
@@ -0,0 +1,101 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/department/update 接口的请求。
+ ///
+ public class CgibinSchoolDepartmentUpdateRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Administrator
+ {
+ ///
+ /// 获取或设置操作类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("op")]
+ [System.Text.Json.Serialization.JsonPropertyName("op")]
+ public int OperationType { get; set; }
+
+ ///
+ /// 获取或设置管理员成员账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string UserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置管理员类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int? Type { get; set; }
+
+ ///
+ /// 获取或设置教师科目。
+ ///
+ [Newtonsoft.Json.JsonProperty("subject")]
+ [System.Text.Json.Serialization.JsonPropertyName("subject")]
+ public string? Subject { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置部门 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("id")]
+ [System.Text.Json.Serialization.JsonPropertyName("id")]
+ public int DepartmentId { get; set; }
+
+ ///
+ /// 获取或设置新的部门 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("new_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("new_id")]
+ public int? NewDepartmentId { get; set; }
+
+ ///
+ /// 获取或设置部门名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string? Name { get; set; }
+
+ ///
+ /// 获取或设置上级部门 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("parentid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parentid")]
+ public int? ParentDepartmentId { get; set; }
+
+ ///
+ /// 获取或设置标准年级。
+ ///
+ [Newtonsoft.Json.JsonProperty("standard_grade")]
+ [System.Text.Json.Serialization.JsonPropertyName("standard_grade")]
+ public int? StandardGrade { get; set; }
+
+ ///
+ /// 获取或设置入学年份。
+ ///
+ [Newtonsoft.Json.JsonProperty("register_year")]
+ [System.Text.Json.Serialization.JsonPropertyName("register_year")]
+ public int? RegisterYear { get; set; }
+
+ ///
+ /// 获取或设置排序值。
+ ///
+ [Newtonsoft.Json.JsonProperty("order")]
+ [System.Text.Json.Serialization.JsonPropertyName("order")]
+ public int? Order { get; set; }
+
+ ///
+ /// 获取或设置部门管理员列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("department_admins")]
+ [System.Text.Json.Serialization.JsonPropertyName("department_admins")]
+ public IList? AdministratorList { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentUpdateResponse.cs
new file mode 100644
index 00000000..bdaf45fa
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Department/CgibinSchoolDepartmentUpdateResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/department/update 接口的响应。
+ ///
+ public class CgibinSchoolDepartmentUpdateResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetLivingInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetLivingInfoRequest.cs
new file mode 100644
index 00000000..ab911bf8
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetLivingInfoRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/living/get_living_info 接口的请求。
+ ///
+ public class CgibinSchoolLivingGetLivingInfoRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置直播 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string LivingId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetLivingInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetLivingInfoResponse.cs
new file mode 100644
index 00000000..3c27b716
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetLivingInfoResponse.cs
@@ -0,0 +1,109 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/living/get_living_info 接口的响应。
+ ///
+ public class CgibinSchoolLivingGetLivingInfoResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Living
+ {
+ public static class Types
+ {
+ public class LivingRange
+ {
+ ///
+ /// 获取或设置部门 ID(即班级)列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("partyids")]
+ [System.Text.Json.Serialization.JsonPropertyName("partyids")]
+ public int[]? DepartmentIdList { get; set; }
+
+ ///
+ /// 获取或设置客户群(即班级群)名称列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("group_names")]
+ [System.Text.Json.Serialization.JsonPropertyName("group_names")]
+ public string[]? GroupChatNameList { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置主播成员账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("anchor_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("anchor_userid")]
+ public string AnchorUserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置直播标题。
+ ///
+ [Newtonsoft.Json.JsonProperty("theme")]
+ [System.Text.Json.Serialization.JsonPropertyName("theme")]
+ public string Theme { get; set; } = default!;
+
+ ///
+ /// 获取或设置直播开始时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("living_start")]
+ [System.Text.Json.Serialization.JsonPropertyName("living_start")]
+ public long StartTimestamp { get; set; }
+
+ ///
+ /// 获取或设置直播持续时长(单位:秒)。
+ ///
+ [Newtonsoft.Json.JsonProperty("living_duration")]
+ [System.Text.Json.Serialization.JsonPropertyName("living_duration")]
+ public int Duration { get; set; }
+
+ ///
+ /// 获取或设置直播范围。
+ ///
+ [Newtonsoft.Json.JsonProperty("living_range")]
+ [System.Text.Json.Serialization.JsonPropertyName("living_range")]
+ public Types.LivingRange Range { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否开启回放。
+ ///
+ [Newtonsoft.Json.JsonProperty("open_replay")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("open_replay")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))]
+ public bool IsOpenReplay { get; set; }
+
+ ///
+ /// 获取或设置观众总人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("viewer_num")]
+ [System.Text.Json.Serialization.JsonPropertyName("viewer_num")]
+ public int ViewerCount { get; set; }
+
+ ///
+ /// 获取或设置评论数。
+ ///
+ [Newtonsoft.Json.JsonProperty("comment_num")]
+ [System.Text.Json.Serialization.JsonPropertyName("comment_num")]
+ public int CommentCount { get; set; }
+
+ ///
+ /// 获取或设置推流地址 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("push_stream_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("push_stream_url")]
+ public string? PushStreamUrl { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置直播信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("living_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("living_info")]
+ public Types.Living Living { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetUnwatchStatisticsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetUnwatchStatisticsRequest.cs
new file mode 100644
index 00000000..d5d8268c
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetUnwatchStatisticsRequest.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/living/get_unwatch_stat 接口的请求。
+ ///
+ public class CgibinSchoolLivingGetUnwatchStatisticsRequest : CgibinSchoolLivingGetWatchStatisticsRequest
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetUnwatchStatisticsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetUnwatchStatisticsResponse.cs
new file mode 100644
index 00000000..8e64a608
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetUnwatchStatisticsResponse.cs
@@ -0,0 +1,74 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/living/get_unwatch_stat 接口的响应。
+ ///
+ public class CgibinSchoolLivingGetUnwatchStatisticsResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Statistics
+ {
+ public static class Types
+ {
+ public class Student
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string? StudentUserId { get; set; }
+
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string? ParentUserId { get; set; }
+
+ ///
+ /// 获取或设置学生所在的部门 ID(即班级)列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("partyids")]
+ [System.Text.Json.Serialization.JsonPropertyName("partyids")]
+ public int[] DepartmentIdList { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置学生列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("students")]
+ [System.Text.Json.Serialization.JsonPropertyName("students")]
+ public Types.Student[] StudentList { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置统计信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("stat_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("stat_info")]
+ public Types.Statistics Statistics { get; set; } = default!;
+
+ ///
+ /// 获取或设置翻页是否结束。
+ ///
+ [Newtonsoft.Json.JsonProperty("ending")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("ending")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))]
+ public bool IsEnding { get; set; }
+
+ ///
+ /// 获取或设置翻页标记。
+ ///
+ [Newtonsoft.Json.JsonProperty("next_key")]
+ [System.Text.Json.Serialization.JsonPropertyName("next_key")]
+ public string? NextCursor { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetWatchStatisticsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetWatchStatisticsRequest.cs
new file mode 100644
index 00000000..2d588c2f
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetWatchStatisticsRequest.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/living/get_watch_stat 接口的请求。
+ ///
+ public class CgibinSchoolLivingGetWatchStatisticsRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置直播 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("livingid")]
+ [System.Text.Json.Serialization.JsonPropertyName("livingid")]
+ public string LivingId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置翻页标记。
+ ///
+ [Newtonsoft.Json.JsonProperty("next_key")]
+ [System.Text.Json.Serialization.JsonPropertyName("next_key")]
+ public string? NextCursor { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetWatchStatisticsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetWatchStatisticsResponse.cs
new file mode 100644
index 00000000..64be5cdd
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/Living/CgibinSchoolLivingGetWatchStatisticsResponse.cs
@@ -0,0 +1,151 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/living/get_watch_stat 接口的响应。
+ ///
+ public class CgibinSchoolLivingGetWatchStatisticsResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Statistics
+ {
+ public static class Types
+ {
+ public class Student
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string? StudentUserId { get; set; }
+
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string? ParentUserId { get; set; }
+
+ ///
+ /// 获取或设置学生所在的部门 ID(即班级)列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("partyids")]
+ [System.Text.Json.Serialization.JsonPropertyName("partyids")]
+ public int[] DepartmentIdList { get; set; } = default!;
+
+ ///
+ /// 获取或设置观看时长(单位:秒)。
+ ///
+ [Newtonsoft.Json.JsonProperty("watch_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("watch_time")]
+ public int WatchTime { get; set; }
+
+ ///
+ /// 获取或设置首次进入直播时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("enter_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("enter_time")]
+ public long EnterTimestamp { get; set; }
+
+ ///
+ /// 获取或设置最后离开直播时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("leave_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("leave_time")]
+ public long LeaveTimestamp { get; set; }
+
+ ///
+ /// 获取或设置是否评论。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_comment")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("is_comment")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))]
+ public bool IsComment { get; set; }
+ }
+
+ public class Visitor
+ {
+ ///
+ /// 获取或设置微信昵称。
+ ///
+ [Newtonsoft.Json.JsonProperty("nickname")]
+ [System.Text.Json.Serialization.JsonPropertyName("nickname")]
+ public string? Nickname { get; set; }
+
+ ///
+ /// 获取或设置观看时长(单位:秒)。
+ ///
+ [Newtonsoft.Json.JsonProperty("watch_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("watch_time")]
+ public int WatchTime { get; set; }
+
+ ///
+ /// 获取或设置首次进入直播时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("enter_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("enter_time")]
+ public long EnterTimestamp { get; set; }
+
+ ///
+ /// 获取或设置最后离开直播时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("leave_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("leave_time")]
+ public long LeaveTimestamp { get; set; }
+
+ ///
+ /// 获取或设置是否评论。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_comment")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("is_comment")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))]
+ public bool IsComment { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置学生列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("students")]
+ [System.Text.Json.Serialization.JsonPropertyName("students")]
+ public Types.Student[] StudentList { get; set; } = default!;
+
+ ///
+ /// 获取或设置观众列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("visitors")]
+ [System.Text.Json.Serialization.JsonPropertyName("visitors")]
+ public Types.Visitor[] VisitorList { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置统计信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("stat_infoes")]
+ [System.Text.Json.Serialization.JsonPropertyName("stat_infoes")]
+ public Types.Statistics Statistics { get; set; } = default!;
+
+ ///
+ /// 获取或设置翻页是否结束。
+ ///
+ [Newtonsoft.Json.JsonProperty("ending")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("ending")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))]
+ public bool IsEnding { get; set; }
+
+ ///
+ /// 获取或设置翻页标记。
+ ///
+ [Newtonsoft.Json.JsonProperty("next_key")]
+ [System.Text.Json.Serialization.JsonPropertyName("next_key")]
+ public string? NextCursor { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserGetRequest.cs
new file mode 100644
index 00000000..d08af816
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserGetRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/get 接口的请求。
+ ///
+ public class CgibinSchoolUserGetRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置学生或家长账号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string StudentOrParentUserId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserGetResponse.cs
new file mode 100644
index 00000000..94e5912a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserGetResponse.cs
@@ -0,0 +1,176 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/get 接口的响应。
+ ///
+ public class CgibinSchoolUserGetResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Student
+ {
+ public static class Types
+ {
+ public class Parent
+ {
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string ParentUserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置手机号码。
+ ///
+ [Newtonsoft.Json.JsonProperty("mobile")]
+ [System.Text.Json.Serialization.JsonPropertyName("mobile")]
+ public string? MobileNumber { get; set; }
+
+ ///
+ /// 获取或设置家长与学生的关系。
+ ///
+ [Newtonsoft.Json.JsonProperty("relation")]
+ [System.Text.Json.Serialization.JsonPropertyName("relation")]
+ public string Relation { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否关注了“学校通知”。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_subscribe")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("is_subscribe")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))]
+ public bool IsSubscribe { get; set; }
+
+ ///
+ /// 获取或设置外部联系人账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("external_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("external_userid")]
+ public string? ExternalUserId { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string StudentUserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置学生姓名。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string Name { get; set; } = default!;
+
+ ///
+ /// 获取或设置学生所在的部门 ID(即班级)列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("department")]
+ [System.Text.Json.Serialization.JsonPropertyName("department")]
+ public int[] DepartmentIdList { get; set; } = default!;
+
+ ///
+ /// 获取或设置学生的家长列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("parents")]
+ [System.Text.Json.Serialization.JsonPropertyName("parents")]
+ public Types.Parent[] Parents { get; set; } = default!;
+ }
+
+ public class Parent
+ {
+ public static class Types
+ {
+ public class Child
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string StudentUserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置学生姓名。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string? Name { get; set; }
+
+ ///
+ /// 获取或设置家长与学生的关系。
+ ///
+ [Newtonsoft.Json.JsonProperty("relation")]
+ [System.Text.Json.Serialization.JsonPropertyName("relation")]
+ public string Relation { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string ParentUserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置手机号码。
+ ///
+ [Newtonsoft.Json.JsonProperty("mobile")]
+ [System.Text.Json.Serialization.JsonPropertyName("mobile")]
+ public string MobileNumber { get; set; } = default!;
+
+ ///
+ /// 获取或设置家长的孩子列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("children")]
+ [System.Text.Json.Serialization.JsonPropertyName("children")]
+ public Types.Child[] Children { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否关注了“学校通知”。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_subscribe")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("is_subscribe")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))]
+ public bool IsSubscribe { get; set; }
+
+ ///
+ /// 获取或设置外部联系人账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("external_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("external_userid")]
+ public string? ExternalUserId { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置用户类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("user_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("user_type")]
+ public int UserType { get; set; }
+
+ ///
+ /// 获取或设置学生信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("student")]
+ [System.Text.Json.Serialization.JsonPropertyName("student")]
+ public Types.Student? Student { get; set; }
+
+ ///
+ /// 获取或设置家长信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent")]
+ public Types.Parent? Parent { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListParentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListParentRequest.cs
new file mode 100644
index 00000000..313d7656
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListParentRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/list_parent 接口的请求。
+ ///
+ public class CgibinSchoolUserListParentRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置部门 ID(即班级)。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public int DeparmentId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListParentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListParentResponse.cs
new file mode 100644
index 00000000..204ad61b
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListParentResponse.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/list_parent 接口的响应。
+ ///
+ public class CgibinSchoolUserListParentResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Parent : CgibinSchoolUserGetResponse.Types.Parent
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置家长列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("parents")]
+ [System.Text.Json.Serialization.JsonPropertyName("parents")]
+ public Types.Parent[] ParentList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListRequest.cs
new file mode 100644
index 00000000..f6a67fd2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListRequest.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/list 接口的请求。
+ ///
+ public class CgibinSchoolUserListRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置部门 ID(即班级)。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public int DeparmentId { get; set; }
+
+ ///
+ /// 获取或设置是否递归获取子部门成员。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public bool? RequireFetchChild { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListResponse.cs
new file mode 100644
index 00000000..83c43841
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/CgibinSchoolUserListResponse.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/list 接口的响应。
+ ///
+ public class CgibinSchoolUserListResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Student : CgibinSchoolUserGetResponse.Types.Student
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置学生列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("students")]
+ [System.Text.Json.Serialization.JsonPropertyName("students")]
+ public Types.Student[] StudentList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchCreateParentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchCreateParentRequest.cs
new file mode 100644
index 00000000..8dfcfd34
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchCreateParentRequest.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_create_parent 接口的请求。
+ ///
+ public class CgibinSchoolUserBatchCreateParentRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Parent
+ {
+ public static class Types
+ {
+ public class Child : CgibinSchoolUserCreateParentRequest.Types.Child
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string ParentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置手机号码。
+ ///
+ [Newtonsoft.Json.JsonProperty("mobile")]
+ [System.Text.Json.Serialization.JsonPropertyName("mobile")]
+ public string MobileNumber { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置是否发起邀请。
+ ///
+ [Newtonsoft.Json.JsonProperty("to_invite")]
+ [System.Text.Json.Serialization.JsonPropertyName("to_invite")]
+ public bool? RequireInvite { get; set; }
+
+ ///
+ /// 获取或设置家长的孩子列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("children")]
+ [System.Text.Json.Serialization.JsonPropertyName("children")]
+ public IList Children { get; set; } = new List();
+ }
+ }
+
+ ///
+ /// 获取或设置家长列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("parents")]
+ [System.Text.Json.Serialization.JsonPropertyName("parents")]
+ public IList ParentList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchCreateParentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchCreateParentResponse.cs
new file mode 100644
index 00000000..e32afd31
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchCreateParentResponse.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_create_parent 接口的响应。
+ ///
+ public class CgibinSchoolUserBatchCreateParentResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Result
+ {
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string ParentUserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置错误码。
+ ///
+ [Newtonsoft.Json.JsonProperty("errcode")]
+ [System.Text.Json.Serialization.JsonPropertyName("errcode")]
+ public int ErrorCode { get; set; }
+
+ ///
+ /// 获取或设置错误描述。
+ ///
+ [Newtonsoft.Json.JsonProperty("errmsg")]
+ [System.Text.Json.Serialization.JsonPropertyName("errmsg")]
+ public string ErrorMessage { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("result_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("result_list")]
+ public Types.Result[] ResultList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchDeleteParentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchDeleteParentRequest.cs
new file mode 100644
index 00000000..60bdbb23
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchDeleteParentRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_delete_parent 接口的请求。
+ ///
+ public class CgibinSchoolUserBatchDeleteParentRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置家长账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("useridlist")]
+ [System.Text.Json.Serialization.JsonPropertyName("useridlist")]
+ public IList ParentUserIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchDeleteParentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchDeleteParentResponse.cs
new file mode 100644
index 00000000..3c9ad470
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchDeleteParentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_delete_parent 接口的响应。
+ ///
+ public class CgibinSchoolUserBatchDeleteParentResponse : CgibinSchoolUserBatchCreateParentResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchUpdateParentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchUpdateParentRequest.cs
new file mode 100644
index 00000000..369db94a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchUpdateParentRequest.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_update_parent 接口的请求。
+ ///
+ public class CgibinSchoolUserBatchUpdateParentRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Parent
+ {
+ public static class Types
+ {
+ public class Child : CgibinSchoolUserUpdateParentRequest.Types.Child
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string ParentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置新的家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("new_parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("new_parent_userid")]
+ public string? NewParentUserId { get; set; }
+
+ ///
+ /// 获取或设置手机号码。
+ ///
+ [Newtonsoft.Json.JsonProperty("mobile")]
+ [System.Text.Json.Serialization.JsonPropertyName("mobile")]
+ public string? MobileNumber { get; set; }
+
+ ///
+ /// 获取或设置家长的孩子列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("children")]
+ [System.Text.Json.Serialization.JsonPropertyName("children")]
+ public IList? Children { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置家长列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("parents")]
+ [System.Text.Json.Serialization.JsonPropertyName("parents")]
+ public IList ParentList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchUpdateParentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchUpdateParentResponse.cs
new file mode 100644
index 00000000..11ee0f57
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserBatchUpdateParentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_update_parent 接口的响应。
+ ///
+ public class CgibinSchoolUserBatchUpdateParentResponse : CgibinSchoolUserBatchCreateParentResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserCreateParentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserCreateParentRequest.cs
new file mode 100644
index 00000000..5299df08
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserCreateParentRequest.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/create_parent 接口的请求。
+ ///
+ public class CgibinSchoolUserCreateParentRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Child
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string StudentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置家长与学生的关系。
+ ///
+ [Newtonsoft.Json.JsonProperty("relation")]
+ [System.Text.Json.Serialization.JsonPropertyName("relation")]
+ public string Relation { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string ParentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置手机号码。
+ ///
+ [Newtonsoft.Json.JsonProperty("mobile")]
+ [System.Text.Json.Serialization.JsonPropertyName("mobile")]
+ public string MobileNumber { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置是否发起邀请。
+ ///
+ [Newtonsoft.Json.JsonProperty("to_invite")]
+ [System.Text.Json.Serialization.JsonPropertyName("to_invite")]
+ public bool? RequireInvite { get; set; }
+
+ ///
+ /// 获取或设置家长的孩子列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("children")]
+ [System.Text.Json.Serialization.JsonPropertyName("children")]
+ public IList Children { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserCreateParentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserCreateParentResponse.cs
new file mode 100644
index 00000000..8627fdf4
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserCreateParentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/create_parent 接口的响应。
+ ///
+ public class CgibinSchoolUserCreateParentResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserDeleteParentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserDeleteParentRequest.cs
new file mode 100644
index 00000000..c1f75bf9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserDeleteParentRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/delete_parent 接口的请求。
+ ///
+ public class CgibinSchoolUserDeleteParentRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ParentUserId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserDeleteParentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserDeleteParentResponse.cs
new file mode 100644
index 00000000..9035646a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserDeleteParentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/delete_parent 接口的响应。
+ ///
+ public class CgibinSchoolUserDeleteParentResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserUpdateParentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserUpdateParentRequest.cs
new file mode 100644
index 00000000..5068a893
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserUpdateParentRequest.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/update_parent 接口的请求。
+ ///
+ public class CgibinSchoolUserUpdateParentRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Child : CgibinSchoolUserCreateParentRequest.Types.Child
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string ParentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置新的家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("new_parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("new_parent_userid")]
+ public string? NewParentUserId { get; set; }
+
+ ///
+ /// 获取或设置手机号码。
+ ///
+ [Newtonsoft.Json.JsonProperty("mobile")]
+ [System.Text.Json.Serialization.JsonPropertyName("mobile")]
+ public string? MobileNumber { get; set; }
+
+ ///
+ /// 获取或设置家长的孩子列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("children")]
+ [System.Text.Json.Serialization.JsonPropertyName("children")]
+ public IList? Children { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserUpdateParentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserUpdateParentResponse.cs
new file mode 100644
index 00000000..ea5eec49
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Parent/CgibinSchoolUserUpdateParentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/update_parent 接口的响应。
+ ///
+ public class CgibinSchoolUserUpdateParentResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchCreateStudentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchCreateStudentRequest.cs
new file mode 100644
index 00000000..84a2069f
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchCreateStudentRequest.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_create_student 接口的请求。
+ ///
+ public class CgibinSchoolUserBatchCreateStudentRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Student
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string StudentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置学生姓名。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string Name { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置学生所在的部门 ID(即班级)列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("department")]
+ [System.Text.Json.Serialization.JsonPropertyName("department")]
+ public IList DepartmentIdList { get; set; } = new List();
+ }
+ }
+
+ ///
+ /// 获取或设置学生列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("students")]
+ [System.Text.Json.Serialization.JsonPropertyName("students")]
+ public IList StudentList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchCreateStudentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchCreateStudentResponse.cs
new file mode 100644
index 00000000..97f09046
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchCreateStudentResponse.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_create_student 接口的响应。
+ ///
+ public class CgibinSchoolUserBatchCreateStudentResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Result
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string StudentUserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置错误码。
+ ///
+ [Newtonsoft.Json.JsonProperty("errcode")]
+ [System.Text.Json.Serialization.JsonPropertyName("errcode")]
+ public int ErrorCode { get; set; }
+
+ ///
+ /// 获取或设置错误描述。
+ ///
+ [Newtonsoft.Json.JsonProperty("errmsg")]
+ [System.Text.Json.Serialization.JsonPropertyName("errmsg")]
+ public string ErrorMessage { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("result_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("result_list")]
+ public Types.Result[] ResultList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchDeleteStudentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchDeleteStudentRequest.cs
new file mode 100644
index 00000000..febdac41
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchDeleteStudentRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_delete_student 接口的请求。
+ ///
+ public class CgibinSchoolUserBatchDeleteStudentRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置学生账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("useridlist")]
+ [System.Text.Json.Serialization.JsonPropertyName("useridlist")]
+ public IList StudentUserIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchDeleteStudentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchDeleteStudentResponse.cs
new file mode 100644
index 00000000..d064e8d4
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchDeleteStudentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_delete_student 接口的响应。
+ ///
+ public class CgibinSchoolUserBatchDeleteStudentResponse : CgibinSchoolUserBatchCreateStudentResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchUpdateStudentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchUpdateStudentRequest.cs
new file mode 100644
index 00000000..788d3d58
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchUpdateStudentRequest.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_update_student 接口的请求。
+ ///
+ public class CgibinSchoolUserBatchUpdateStudentRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Student
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string StudentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置新的学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("new_student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("new_student_userid")]
+ public string? NewStudentUserId { get; set; }
+
+ ///
+ /// 获取或设置学生姓名。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string? Name { get; set; }
+
+ ///
+ /// 获取或设置学生所在的部门 ID(即班级)列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("department")]
+ [System.Text.Json.Serialization.JsonPropertyName("department")]
+ public IList? DepartmentIdList { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置学生列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("students")]
+ [System.Text.Json.Serialization.JsonPropertyName("students")]
+ public IList StudentList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchUpdateStudentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchUpdateStudentResponse.cs
new file mode 100644
index 00000000..3f69aee9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserBatchUpdateStudentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/batch_update_student 接口的响应。
+ ///
+ public class CgibinSchoolUserBatchUpdateStudentResponse : CgibinSchoolUserBatchCreateStudentResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserCreateStudentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserCreateStudentRequest.cs
new file mode 100644
index 00000000..4f2406db
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserCreateStudentRequest.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/create_student 接口的请求。
+ ///
+ public class CgibinSchoolUserCreateStudentRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string StudentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置学生姓名。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string Name { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置学生所在的部门 ID(即班级)列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("department")]
+ [System.Text.Json.Serialization.JsonPropertyName("department")]
+ public IList DepartmentIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserCreateStudentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserCreateStudentResponse.cs
new file mode 100644
index 00000000..fe038b0c
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserCreateStudentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/create_student 接口的响应。
+ ///
+ public class CgibinSchoolUserCreateStudentResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserDeleteStudentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserDeleteStudentRequest.cs
new file mode 100644
index 00000000..88162460
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserDeleteStudentRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/delete_student 接口的请求。
+ ///
+ public class CgibinSchoolUserDeleteStudentRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string StudentUserId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserDeleteStudentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserDeleteStudentResponse.cs
new file mode 100644
index 00000000..2effdfbb
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserDeleteStudentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [GET] /cgi-bin/school/user/delete_student 接口的响应。
+ ///
+ public class CgibinSchoolUserDeleteStudentResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserUpdateStudentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserUpdateStudentRequest.cs
new file mode 100644
index 00000000..e25d25a9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserUpdateStudentRequest.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/update_student 接口的请求。
+ ///
+ public class CgibinSchoolUserUpdateStudentRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("student_userid")]
+ public string StudentUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置新的学生账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("new_student_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("new_student_userid")]
+ public string? NewStudentUserId { get; set; }
+
+ ///
+ /// 获取或设置学生姓名。
+ ///
+ [Newtonsoft.Json.JsonProperty("name")]
+ [System.Text.Json.Serialization.JsonPropertyName("name")]
+ public string? Name { get; set; }
+
+ ///
+ /// 获取或设置学生所在的部门 ID(即班级)列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("department")]
+ [System.Text.Json.Serialization.JsonPropertyName("department")]
+ public IList? DepartmentIdList { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserUpdateStudentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserUpdateStudentResponse.cs
new file mode 100644
index 00000000..e52c1f30
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinSchool/User/Student/CgibinSchoolUserUpdateStudentResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/school/user/update_student 接口的响应。
+ ///
+ public class CgibinSchoolUserUpdateStudentResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinService/CgibinServiceGetAdminListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinService/CgibinServiceGetAdminListResponse.cs
index ae7dbde0..5e2f5154 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinService/CgibinServiceGetAdminListResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinService/CgibinServiceGetAdminListResponse.cs
@@ -10,7 +10,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
public static class Types
{
- public class Admin
+ public class Administrator
{
///
/// 获取或设置成员账号。
@@ -40,6 +40,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
[Newtonsoft.Json.JsonProperty("admin")]
[System.Text.Json.Serialization.JsonPropertyName("admin")]
- public Types.Admin[]? AdminList { get; set; }
+ public Types.Administrator[]? AdministratorList { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserAuthSuccessRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserAuthSuccessRequest.cs
index 7140c979..4d21d757 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserAuthSuccessRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserAuthSuccessRequest.cs
@@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public class CgibinUserAuthSuccessRequest : WechatWorkRequest
{
///
- /// 获取或设置用户账号。
+ /// 获取或设置成员账号。
///
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserBatchDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserBatchDeleteRequest.cs
index fa7b7a30..bc9d838a 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserBatchDeleteRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserBatchDeleteRequest.cs
@@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public class CgibinUserBatchDeleteRequest : WechatWorkRequest
{
///
- /// 获取或设置用户账号列表。
+ /// 获取或设置成员账号列表。
///
[Newtonsoft.Json.JsonProperty("useridlist")]
[System.Text.Json.Serialization.JsonPropertyName("useridlist")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserConvertToOpenIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserConvertToOpenIdRequest.cs
index ba17bef9..272750e8 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserConvertToOpenIdRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserConvertToOpenIdRequest.cs
@@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public class CgibinUserConvertToOpenIdRequest : WechatWorkRequest
{
///
- /// 获取或设置用户账号。
+ /// 获取或设置成员账号。
///
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserConvertToUserIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserConvertToUserIdResponse.cs
index 177b8996..993f2bb6 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserConvertToUserIdResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserConvertToUserIdResponse.cs
@@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public class CgibinUserConvertToUserIdResponse : WechatWorkResponse
{
///
- /// 获取或设置用户账号。
+ /// 获取或设置成员账号。
///
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserDeleteRequest.cs
index 76a65985..028e8fa0 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserDeleteRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserDeleteRequest.cs
@@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public class CgibinUserDeleteRequest : WechatWorkRequest
{
///
- /// 获取或设置用户账号。
+ /// 获取或设置成员账号。
///
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserGetRequest.cs
index 1b987eb9..7bd15a99 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserGetRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserGetRequest.cs
@@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public class CgibinUserGetRequest : WechatWorkRequest
{
///
- /// 获取或设置用户账号。
+ /// 获取或设置成员账号。
///
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserGetUserInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserGetUserInfoResponse.cs
index 3ca4541f..224b98ed 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserGetUserInfoResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinUser/CgibinUserGetUserInfoResponse.cs
@@ -8,6 +8,26 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
///
public class CgibinUserGetUserInfoResponse : WechatWorkResponse
{
+ public static class Types
+ {
+ public class Parent
+ {
+ ///
+ /// 获取或设置家长所在学校的 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("corpid")]
+ public string CorpId { get; set; } = default!;
+
+ ///
+ /// 获取或设置家长账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("parent_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("parent_userid")]
+ public string ParentUserId { get; set; } = default!;
+ }
+ }
+
///
/// 获取或设置成员账号。
///
@@ -35,5 +55,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
[Newtonsoft.Json.JsonProperty("DeviceId")]
[System.Text.Json.Serialization.JsonPropertyName("DeviceId")]
public string? DeviceId { get; set; }
+
+ ///
+ /// 获取或设置家长列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("parents")]
+ [System.Text.Json.Serialization.JsonPropertyName("parents")]
+ public Types.Parent[]? ParentList { get; set; }
}
}