diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs
index 2ebf5898..caac7514 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinWedocExtensions.cs
@@ -358,6 +358,376 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
}
#endregion
+ #region SmartSheet
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/get_sheet 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetGetSheetAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetGetSheetRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "get_sheet")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/add_sheet 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetAddSheetAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetAddSheetRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "add_sheet")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/update_sheet 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetUpdateSheetAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetUpdateSheetRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "update_sheet")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/delete_sheet 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetDeleteSheetAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetDeleteSheetRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "delete_sheet")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/get_views 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetGetViewsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetGetViewsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "get_views")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/add_view 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetAddViewAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetAddViewRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "add_view")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/update_view 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetUpdateViewAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetUpdateViewRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "update_view")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/delete_views 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetDeleteViewsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetDeleteViewsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "delete_views")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/get_fields 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetGetFieldsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetGetFieldsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "get_fields")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/add_fields 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetAddFieldsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetAddFieldsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "add_fields")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/update_fields 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetUpdateFieldsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetUpdateFieldsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "update_fields")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/delete_fields 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetDeleteFieldsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetDeleteFieldsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "delete_fields")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/get_records 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetGetRecordsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetGetRecordsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "get_records")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/add_records 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetAddRecordsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetAddRecordsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "add_records")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/update_records 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetUpdateRecordsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetUpdateRecordsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "update_records")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/wedoc/smartsheet/delete_records 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinWedocSmartSheetDeleteRecordsAsync(this WechatWorkClient client, Models.CgibinWedocSmartSheetDeleteRecordsRequest 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
+ .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "wedoc", "smartsheet", "delete_records")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+ #endregion
+
#region SpreadSheet
///
/// 异步调用 [POST] /cgi-bin/wedoc/spreadsheet/batch_update 接口。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsRequest.cs
new file mode 100644
index 00000000..cdc19b76
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsRequest.cs
@@ -0,0 +1,475 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/add_fields 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetAddFieldsRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Field
+ {
+ public static class Types
+ {
+ public class TextFieldProperty
+ {
+ }
+
+ public class NumberFieldProperty
+ {
+ ///
+ /// 获取或设置小数点的位数。
+ ///
+ [Newtonsoft.Json.JsonProperty("decimal_places")]
+ [System.Text.Json.Serialization.JsonPropertyName("decimal_places")]
+ public int DecimalPlaces { get; set; }
+
+ ///
+ /// 获取或设置是否使用千位符。
+ ///
+ [Newtonsoft.Json.JsonProperty("use_separate")]
+ [System.Text.Json.Serialization.JsonPropertyName("use_separate")]
+ public bool IsUseSeparate { get; set; }
+ }
+
+ public class CheckboxFieldProperty
+ {
+ ///
+ /// 获取或设置是否默认勾选。
+ ///
+ [Newtonsoft.Json.JsonProperty("checked")]
+ [System.Text.Json.Serialization.JsonPropertyName("checked")]
+ public bool IsChecked { get; set; }
+ }
+
+ public class DateTimeFieldProperty
+ {
+ ///
+ /// 获取或设置日期格式字符串。
+ ///
+ [Newtonsoft.Json.JsonProperty("format")]
+ [System.Text.Json.Serialization.JsonPropertyName("format")]
+ public string FormatString { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置是否自动填充。
+ ///
+ [Newtonsoft.Json.JsonProperty("auto_fill")]
+ [System.Text.Json.Serialization.JsonPropertyName("auto_fill")]
+ public bool IsAutoFill { get; set; }
+ }
+
+ public class AttachmentFieldProperty
+ {
+ ///
+ /// 获取或设置显示模式。
+ ///
+ [Newtonsoft.Json.JsonProperty("display_mode")]
+ [System.Text.Json.Serialization.JsonPropertyName("display_mode")]
+ public string DisplayMode { get; set; } = string.Empty;
+ }
+
+ public class UserFieldProperty
+ {
+ ///
+ /// 获取或设置是否允许添加多个。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_multiple")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_multiple")]
+ public bool IsMultiple { get; set; }
+
+ ///
+ /// 获取或设置是否通知用户。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_notified")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_notified")]
+ public bool IsNotified { get; set; }
+ }
+
+ public class UrlFieldProperty
+ {
+ ///
+ /// 获取或设置超链接展示样式。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public string Type { get; set; } = string.Empty;
+ }
+
+ public class SelectFieldProperty
+ {
+ public static class Types
+ {
+ public class Option
+ {
+ ///
+ /// 获取或设置选项 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("id")]
+ [System.Text.Json.Serialization.JsonPropertyName("id")]
+ public string Id { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置选项内容。
+ ///
+ [Newtonsoft.Json.JsonProperty("text")]
+ [System.Text.Json.Serialization.JsonPropertyName("text")]
+ public string Text { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置选项颜色。
+ ///
+ [Newtonsoft.Json.JsonProperty("style")]
+ [System.Text.Json.Serialization.JsonPropertyName("style")]
+ public int Style { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置是否允许填写时新增选项。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_quick_add")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_quick_add")]
+ public bool IsQuickAdd { get; set; }
+
+ ///
+ /// 获取或设置选项列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("options")]
+ [System.Text.Json.Serialization.JsonPropertyName("options")]
+ public IList OptionList { get; set; } = new List();
+ }
+
+ public class CreatedTimeFieldProperty
+ {
+ ///
+ /// 获取或设置日期格式字符串。
+ ///
+ [Newtonsoft.Json.JsonProperty("format")]
+ [System.Text.Json.Serialization.JsonPropertyName("format")]
+ public string FormatString { get; set; } = string.Empty;
+ }
+
+ public class ModifiedTimeFieldProperty
+ {
+ ///
+ /// 获取或设置日期格式字符串。
+ ///
+ [Newtonsoft.Json.JsonProperty("format")]
+ [System.Text.Json.Serialization.JsonPropertyName("format")]
+ public string FormatString { get; set; } = string.Empty;
+ }
+
+ public class ProgressFieldProperty
+ {
+ ///
+ /// 获取或设置小数点的位数。
+ ///
+ [Newtonsoft.Json.JsonProperty("decimal_places")]
+ [System.Text.Json.Serialization.JsonPropertyName("decimal_places")]
+ public int DecimalPlaces { get; set; }
+ }
+
+ public class SingleSelectFieldProperty
+ {
+ public static class Types
+ {
+ public class Option : SelectFieldProperty.Types.Option
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置是否允许填写时新增选项。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_quick_add")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_quick_add")]
+ public bool IsQuickAdd { get; set; }
+
+ ///
+ /// 获取或设置选项列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("options")]
+ [System.Text.Json.Serialization.JsonPropertyName("options")]
+ public IList OptionList { get; set; } = new List();
+ }
+
+ public class ReferenceFieldProperty
+ {
+ ///
+ /// 获取或设置视图 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_id")]
+ public string Viewid { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置关联的子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_id")]
+ public string? SheetId { get; set; }
+
+ ///
+ /// 获取或设置关联的字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string? FieldId { get; set; }
+
+ ///
+ /// 获取或设置是否允许多选。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_multiple")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_multiple")]
+ public bool IsMultiple { get; set; }
+ }
+
+ public class LocationFieldProperty
+ {
+ ///
+ /// 获取或设置输入类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("input_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("input_type")]
+ public string InputType { get; set; } = string.Empty;
+ }
+
+ public class AutoNumberFieldProperty
+ {
+ public static class Types
+ {
+ public class Rule
+ {
+ ///
+ /// 获取或设置规则类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public string Type { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public string Value { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置输入类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("input_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("input_type")]
+ public string InputType { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置自定义规则列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("rules")]
+ [System.Text.Json.Serialization.JsonPropertyName("rules")]
+ public IList? RuleList { get; set; }
+
+ ///
+ /// 获取或设置是否应用于已有编号。
+ ///
+ [Newtonsoft.Json.JsonProperty("reformat_existing_record")]
+ [System.Text.Json.Serialization.JsonPropertyName("reformat_existing_record")]
+ public bool IsReformatExistingRecord { get; set; }
+ }
+
+ public class CurrencyFieldProperty
+ {
+ ///
+ /// 获取或设置货币类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("currency_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("currency_type")]
+ public string CurrencyType { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置小数点的位数。
+ ///
+ [Newtonsoft.Json.JsonProperty("decimal_places")]
+ [System.Text.Json.Serialization.JsonPropertyName("decimal_places")]
+ public int DecimalPlaces { get; set; }
+
+ ///
+ /// 获取或设置是否使用千位符。
+ ///
+ [Newtonsoft.Json.JsonProperty("use_separate")]
+ [System.Text.Json.Serialization.JsonPropertyName("use_separate")]
+ public bool IsUseSeparate { get; set; }
+ }
+
+ public class GroupChatFieldProperty
+ {
+ ///
+ /// 获取或设置是否允许多个群聊。
+ ///
+ [Newtonsoft.Json.JsonProperty("allow_multiple")]
+ [System.Text.Json.Serialization.JsonPropertyName("allow_multiple")]
+ public bool IsAllowMultiple { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置字段名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_title")]
+ public string Title { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置字段类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_type")]
+ public string Type { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置文本类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_text")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_text")]
+ public Types.TextFieldProperty? PropertyAsText { get; set; }
+
+ ///
+ /// 获取或设置数字类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_number")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_number")]
+ public Types.NumberFieldProperty? PropertyAsNumber { get; set; }
+
+ ///
+ /// 获取或设置复选框类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_checkbox")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_checkbox")]
+ public Types.CheckboxFieldProperty? PropertyAsCheckbox { get; set; }
+
+ ///
+ /// 获取或设置日期类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_date_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_date_time")]
+ public Types.DateTimeFieldProperty? PropertyAsDateTime { get; set; }
+
+ ///
+ /// 获取或设置文件类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_attachment")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_attachment")]
+ public Types.AttachmentFieldProperty? PropertyAsAttachment { get; set; }
+
+ ///
+ /// 获取或设置人员类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_user")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_user")]
+ public Types.UserFieldProperty? PropertyAsUser { get; set; }
+
+ ///
+ /// 获取或设置超链接类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_url")]
+ public Types.UrlFieldProperty? PropertyAsUrl { get; set; }
+
+ ///
+ /// 获取或设置多选类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_select")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_select")]
+ public Types.SelectFieldProperty? PropertyAsSelect { get; set; }
+
+ ///
+ /// 获取或设置创建时间类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_created_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_created_time")]
+ public Types.CreatedTimeFieldProperty? PropertyAsCreatedTime { get; set; }
+
+ ///
+ /// 获取或设置最后编辑时间类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_modified_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_modified_time")]
+ public Types.ModifiedTimeFieldProperty? PropertyAsModifiedTime { get; set; }
+
+ ///
+ /// 获取或设置进度类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_progress")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_progress")]
+ public Types.ProgressFieldProperty? PropertyAsProgress { get; set; }
+
+ ///
+ /// 获取或设置单选类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_single_select")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_single_select")]
+ public Types.SingleSelectFieldProperty? PropertyAsSingleSelect { get; set; }
+
+ ///
+ /// 获取或设置引用类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_reference")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_reference")]
+ public Types.ReferenceFieldProperty? PropertyAsReference { get; set; }
+
+ ///
+ /// 获取或设置地理位置类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_location")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_location")]
+ public Types.LocationFieldProperty? PropertyAsLocation { get; set; }
+
+ ///
+ /// 获取或设置自动编号类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_auto_number")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_auto_number")]
+ public Types.AutoNumberFieldProperty? PropertyAsAutoNumber { get; set; }
+
+ ///
+ /// 获取或设置货币类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_currency")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_currency")]
+ public Types.CurrencyFieldProperty? PropertyAsCurrency { get; set; }
+
+ ///
+ /// 获取或设置群类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_ww_group")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_ww_group")]
+ public Types.GroupChatFieldProperty? PropertyAsGroupChat { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("fields")]
+ [System.Text.Json.Serialization.JsonPropertyName("fields")]
+ public IList FieldList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsResponse.cs
new file mode 100644
index 00000000..3a7dfcac
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsResponse.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/add_fields 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetAddFieldsResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Field
+ {
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = default!;
+
+ ///
+ /// 获取或设置字段名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置字段类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_type")]
+ public string Type { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("fields")]
+ [System.Text.Json.Serialization.JsonPropertyName("fields")]
+ public Types.Field[] FieldList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsRequest.cs
new file mode 100644
index 00000000..bb4209b0
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsRequest.cs
@@ -0,0 +1,51 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/add_records 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetAddRecordsRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Record
+ {
+ ///
+ /// 获取或设置单元格值。
+ ///
+ [Newtonsoft.Json.JsonProperty("values")]
+ [System.Text.Json.Serialization.JsonPropertyName("values")]
+ public IDictionary Values { get; set; } = new Dictionary();
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置单元格键类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("key_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("key_type")]
+ public string? KeyType { get; set; }
+
+ ///
+ /// 获取或设置记录列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("records")]
+ [System.Text.Json.Serialization.JsonPropertyName("records")]
+ public IList RecordList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsResponse.cs
new file mode 100644
index 00000000..56909747
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsResponse.cs
@@ -0,0 +1,28 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/add_records 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetAddRecordsResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Record
+ {
+ ///
+ /// 获取或设置记录 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("record_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("record_id")]
+ public string RecordId { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置记录列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("records")]
+ [System.Text.Json.Serialization.JsonPropertyName("records")]
+ public Types.Record[] RecordList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetRequest.cs
new file mode 100644
index 00000000..6e168d92
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetRequest.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/add_sheet 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetAddSheetRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Sheet
+ {
+ ///
+ /// 获取或设置子表名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("title")]
+ [System.Text.Json.Serialization.JsonPropertyName("title")]
+ public string? Title { get; set; }
+
+ ///
+ /// 获取或设置子表下标。
+ ///
+ [Newtonsoft.Json.JsonProperty("index")]
+ [System.Text.Json.Serialization.JsonPropertyName("index")]
+ public int Index { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("properties")]
+ [System.Text.Json.Serialization.JsonPropertyName("properties")]
+ public Types.Sheet Sheet { get; set; } = new Types.Sheet();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetResponse.cs
new file mode 100644
index 00000000..bd4ce83f
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetResponse.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/add_sheet 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetAddSheetResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Sheet
+ {
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = default!;
+
+ ///
+ /// 获取或设置子表名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("title")]
+ [System.Text.Json.Serialization.JsonPropertyName("title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置子表下标。
+ ///
+ [Newtonsoft.Json.JsonProperty("index")]
+ [System.Text.Json.Serialization.JsonPropertyName("index")]
+ public int Index { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置子表信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("properties")]
+ [System.Text.Json.Serialization.JsonPropertyName("properties")]
+ public Types.Sheet Sheet { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewRequest.cs
new file mode 100644
index 00000000..ef092d17
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewRequest.cs
@@ -0,0 +1,87 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/add_view 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetAddViewRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class GanttViewProperty
+ {
+ ///
+ /// 获取或设置时间条起点字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("start_date_field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("start_date_field_id")]
+ public string StartDateFieldId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置时间条终点字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("end_date_field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("end_date_field_id")]
+ public string EndDateFieldId { get; set; } = string.Empty;
+ }
+
+ public class CalendarViewProperty
+ {
+ ///
+ /// 获取或设置时间条起点字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("start_date_field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("start_date_field_id")]
+ public string StartDateFieldId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置时间条终点字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("end_date_field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("end_date_field_id")]
+ public string EndDateFieldId { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置视图名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_title")]
+ public string ViewTitle { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置视图类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_type")]
+ public string ViewType { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置甘特视图属性信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_gantt")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_gantt")]
+ public Types.GanttViewProperty? ViewPropertyAsGantt { get; set; }
+
+ ///
+ /// 获取或设置日历视图属性信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_calendar")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_calendar")]
+ public Types.CalendarViewProperty? ViewPropertyAsCalendar { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewResponse.cs
new file mode 100644
index 00000000..13f1945f
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewResponse.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/add_view 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetAddViewResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class View
+ {
+ ///
+ /// 获取或设置视图 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_id")]
+ public string ViewId { get; set; } = default!;
+
+ ///
+ /// 获取或设置视图名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置视图类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_type")]
+ public string Type { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置视图信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("view")]
+ [System.Text.Json.Serialization.JsonPropertyName("view")]
+ public Types.View View { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsRequest.cs
new file mode 100644
index 00000000..09a1b22c
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsRequest.cs
@@ -0,0 +1,31 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/delete_fields 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetDeleteFieldsRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置字段 ID 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_ids")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_ids")]
+ public IList FieldIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsResponse.cs
new file mode 100644
index 00000000..f206fd51
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/delete_fields 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetDeleteFieldsResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsRequest.cs
new file mode 100644
index 00000000..cd57ed95
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsRequest.cs
@@ -0,0 +1,31 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/delete_records 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetDeleteRecordsRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置记录 ID 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("record_ids")]
+ [System.Text.Json.Serialization.JsonPropertyName("record_ids")]
+ public IList RecordIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsResponse.cs
new file mode 100644
index 00000000..e45c5490
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/delete_records 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetDeleteRecordsResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetRequest.cs
new file mode 100644
index 00000000..8375e290
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/delete_sheet 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetDeleteSheetRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetResponse.cs
new file mode 100644
index 00000000..d5a8ef09
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/delete_sheet 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetDeleteSheetResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsRequest.cs
new file mode 100644
index 00000000..c9f351c2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsRequest.cs
@@ -0,0 +1,31 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/delete_views 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetDeleteViewsRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置视图 ID 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_ids")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_ids")]
+ public IList ViewIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsResponse.cs
new file mode 100644
index 00000000..167740d2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/delete_views 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetDeleteViewsResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsRequest.cs
new file mode 100644
index 00000000..f3d1037a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsRequest.cs
@@ -0,0 +1,59 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/get_fields 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetGetFieldsRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置视图 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_id")]
+ public string? ViewId { get; set; }
+
+ ///
+ /// 获取或设置字段 ID 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_ids")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_ids")]
+ public IList? FieldIdList { get; set; }
+
+ ///
+ /// 获取或设置字段标题列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_titles")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_titles")]
+ public IList? FieldTitleList { get; set; }
+
+ ///
+ /// 获取或设置分页起始位置。
+ ///
+ [Newtonsoft.Json.JsonProperty("offset")]
+ [System.Text.Json.Serialization.JsonPropertyName("offset")]
+ public int? Offset { get; set; }
+
+ ///
+ /// 获取或设置分页每页数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("limit")]
+ [System.Text.Json.Serialization.JsonPropertyName("limit")]
+ public int? Limit { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsResponse.cs
new file mode 100644
index 00000000..b0e896cc
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsResponse.cs
@@ -0,0 +1,480 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/get_fields 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetGetFieldsResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Field
+ {
+ public static class Types
+ {
+ public class TextFieldProperty
+ {
+ }
+
+ public class NumberFieldProperty
+ {
+ ///
+ /// 获取或设置小数点的位数。
+ ///
+ [Newtonsoft.Json.JsonProperty("decimal_places")]
+ [System.Text.Json.Serialization.JsonPropertyName("decimal_places")]
+ public int DecimalPlaces { get; set; }
+
+ ///
+ /// 获取或设置是否使用千位符。
+ ///
+ [Newtonsoft.Json.JsonProperty("use_separate")]
+ [System.Text.Json.Serialization.JsonPropertyName("use_separate")]
+ public bool IsUseSeparate { get; set; }
+ }
+
+ public class CheckboxFieldProperty
+ {
+ ///
+ /// 获取或设置是否默认勾选。
+ ///
+ [Newtonsoft.Json.JsonProperty("checked")]
+ [System.Text.Json.Serialization.JsonPropertyName("checked")]
+ public bool IsChecked { get; set; }
+ }
+
+ public class DateTimeFieldProperty
+ {
+ ///
+ /// 获取或设置日期格式字符串。
+ ///
+ [Newtonsoft.Json.JsonProperty("format")]
+ [System.Text.Json.Serialization.JsonPropertyName("format")]
+ public string FormatString { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否自动填充。
+ ///
+ [Newtonsoft.Json.JsonProperty("auto_fill")]
+ [System.Text.Json.Serialization.JsonPropertyName("auto_fill")]
+ public bool IsAutoFill { get; set; }
+ }
+
+ public class AttachmentFieldProperty
+ {
+ ///
+ /// 获取或设置显示模式。
+ ///
+ [Newtonsoft.Json.JsonProperty("display_mode")]
+ [System.Text.Json.Serialization.JsonPropertyName("display_mode")]
+ public string DisplayMode { get; set; } = default!;
+ }
+
+ public class UserFieldProperty
+ {
+ ///
+ /// 获取或设置是否允许添加多个。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_multiple")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_multiple")]
+ public bool IsMultiple { get; set; }
+
+ ///
+ /// 获取或设置是否通知用户。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_notified")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_notified")]
+ public bool IsNotified { get; set; }
+ }
+
+ public class UrlFieldProperty
+ {
+ ///
+ /// 获取或设置超链接展示样式。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public string Type { get; set; } = default!;
+ }
+
+ public class SelectFieldProperty
+ {
+ public static class Types
+ {
+ public class Option
+ {
+ ///
+ /// 获取或设置选项 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("id")]
+ [System.Text.Json.Serialization.JsonPropertyName("id")]
+ public string Id { get; set; } = default!;
+
+ ///
+ /// 获取或设置选项内容。
+ ///
+ [Newtonsoft.Json.JsonProperty("text")]
+ [System.Text.Json.Serialization.JsonPropertyName("text")]
+ public string Text { get; set; } = default!;
+
+ ///
+ /// 获取或设置选项颜色。
+ ///
+ [Newtonsoft.Json.JsonProperty("style")]
+ [System.Text.Json.Serialization.JsonPropertyName("style")]
+ public int Style { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置是否允许填写时新增选项。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_quick_add")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_quick_add")]
+ public bool IsQuickAdd { get; set; }
+
+ ///
+ /// 获取或设置选项列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("options")]
+ [System.Text.Json.Serialization.JsonPropertyName("options")]
+ public Types.Option[] OptionList { get; set; } = default!;
+ }
+
+ public class CreatedTimeFieldProperty
+ {
+ ///
+ /// 获取或设置日期格式字符串。
+ ///
+ [Newtonsoft.Json.JsonProperty("format")]
+ [System.Text.Json.Serialization.JsonPropertyName("format")]
+ public string FormatString { get; set; } = default!;
+ }
+
+ public class ModifiedTimeFieldProperty
+ {
+ ///
+ /// 获取或设置日期格式字符串。
+ ///
+ [Newtonsoft.Json.JsonProperty("format")]
+ [System.Text.Json.Serialization.JsonPropertyName("format")]
+ public string FormatString { get; set; } = default!;
+ }
+
+ public class ProgressFieldProperty
+ {
+ ///
+ /// 获取或设置小数点的位数。
+ ///
+ [Newtonsoft.Json.JsonProperty("decimal_places")]
+ [System.Text.Json.Serialization.JsonPropertyName("decimal_places")]
+ public int DecimalPlaces { get; set; }
+ }
+
+ public class SingleSelectFieldProperty
+ {
+ public static class Types
+ {
+ public class Option : SelectFieldProperty.Types.Option
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置是否允许填写时新增选项。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_quick_add")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_quick_add")]
+ public bool IsQuickAdd { get; set; }
+
+ ///
+ /// 获取或设置选项列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("options")]
+ [System.Text.Json.Serialization.JsonPropertyName("options")]
+ public Types.Option[] OptionList { get; set; } = default!;
+ }
+
+ public class ReferenceFieldProperty
+ {
+ ///
+ /// 获取或设置视图 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_id")]
+ public string Viewid { get; set; } = default!;
+
+ ///
+ /// 获取或设置关联的子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_id")]
+ public string? SheetId { get; set; }
+
+ ///
+ /// 获取或设置关联的字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string? FieldId { get; set; }
+
+ ///
+ /// 获取或设置是否允许多选。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_multiple")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_multiple")]
+ public bool IsMultiple { get; set; }
+ }
+
+ public class LocationFieldProperty
+ {
+ ///
+ /// 获取或设置输入类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("input_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("input_type")]
+ public string InputType { get; set; } = default!;
+ }
+
+ public class AutoNumberFieldProperty
+ {
+ public static class Types
+ {
+ public class Rule
+ {
+ ///
+ /// 获取或设置规则类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public string Type { get; set; } = default!;
+
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public string Value { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置输入类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("input_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("input_type")]
+ public string InputType { get; set; } = default!;
+
+ ///
+ /// 获取或设置自定义规则列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("rules")]
+ [System.Text.Json.Serialization.JsonPropertyName("rules")]
+ public Types.Rule[]? RuleList { get; set; }
+
+ ///
+ /// 获取或设置是否应用于已有编号。
+ ///
+ [Newtonsoft.Json.JsonProperty("reformat_existing_record")]
+ [System.Text.Json.Serialization.JsonPropertyName("reformat_existing_record")]
+ public bool IsReformatExistingRecord { get; set; }
+ }
+
+ public class CurrencyFieldProperty
+ {
+ ///
+ /// 获取或设置货币类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("currency_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("currency_type")]
+ public string CurrencyType { get; set; } = default!;
+
+ ///
+ /// 获取或设置小数点的位数。
+ ///
+ [Newtonsoft.Json.JsonProperty("decimal_places")]
+ [System.Text.Json.Serialization.JsonPropertyName("decimal_places")]
+ public int DecimalPlaces { get; set; }
+
+ ///
+ /// 获取或设置是否使用千位符。
+ ///
+ [Newtonsoft.Json.JsonProperty("use_separate")]
+ [System.Text.Json.Serialization.JsonPropertyName("use_separate")]
+ public bool IsUseSeparate { get; set; }
+ }
+
+ public class GroupChatFieldProperty
+ {
+ ///
+ /// 获取或设置是否允许多个群聊。
+ ///
+ [Newtonsoft.Json.JsonProperty("allow_multiple")]
+ [System.Text.Json.Serialization.JsonPropertyName("allow_multiple")]
+ public bool IsAllowMultiple { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = default!;
+
+ ///
+ /// 获取或设置字段名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置字段类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_type")]
+ public string Type { get; set; } = default!;
+
+ ///
+ /// 获取或设置文本类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_text")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_text")]
+ public Types.TextFieldProperty? PropertyAsText { get; set; }
+
+ ///
+ /// 获取或设置数字类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_number")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_number")]
+ public Types.NumberFieldProperty? PropertyAsNumber { get; set; }
+
+ ///
+ /// 获取或设置复选框类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_checkbox")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_checkbox")]
+ public Types.CheckboxFieldProperty? PropertyAsCheckbox { get; set; }
+
+ ///
+ /// 获取或设置日期类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_date_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_date_time")]
+ public Types.DateTimeFieldProperty? PropertyAsDateTime { get; set; }
+
+ ///
+ /// 获取或设置文件类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_attachment")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_attachment")]
+ public Types.AttachmentFieldProperty? PropertyAsAttachment { get; set; }
+
+ ///
+ /// 获取或设置人员类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_user")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_user")]
+ public Types.UserFieldProperty? PropertyAsUser { get; set; }
+
+ ///
+ /// 获取或设置超链接类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_url")]
+ public Types.UrlFieldProperty? PropertyAsUrl { get; set; }
+
+ ///
+ /// 获取或设置多选类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_select")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_select")]
+ public Types.SelectFieldProperty? PropertyAsSelect { get; set; }
+
+ ///
+ /// 获取或设置创建时间类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_created_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_created_time")]
+ public Types.CreatedTimeFieldProperty? PropertyAsCreatedTime { get; set; }
+
+ ///
+ /// 获取或设置最后编辑时间类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_modified_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_modified_time")]
+ public Types.ModifiedTimeFieldProperty? PropertyAsModifiedTime { get; set; }
+
+ ///
+ /// 获取或设置进度类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_progress")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_progress")]
+ public Types.ProgressFieldProperty? PropertyAsProgress { get; set; }
+
+ ///
+ /// 获取或设置单选类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_single_select")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_single_select")]
+ public Types.SingleSelectFieldProperty? PropertyAsSingleSelect { get; set; }
+
+ ///
+ /// 获取或设置引用类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_reference")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_reference")]
+ public Types.ReferenceFieldProperty? PropertyAsReference { get; set; }
+
+ ///
+ /// 获取或设置地理位置类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_location")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_location")]
+ public Types.LocationFieldProperty? PropertyAsLocation { get; set; }
+
+ ///
+ /// 获取或设置自动编号类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_auto_number")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_auto_number")]
+ public Types.AutoNumberFieldProperty? PropertyAsAutoNumber { get; set; }
+
+ ///
+ /// 获取或设置货币类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_currency")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_currency")]
+ public Types.CurrencyFieldProperty? PropertyAsCurrency { get; set; }
+
+ ///
+ /// 获取或设置群类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_ww_group")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_ww_group")]
+ public Types.GroupChatFieldProperty? PropertyAsGroupChat { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("fields")]
+ [System.Text.Json.Serialization.JsonPropertyName("fields")]
+ public Types.Field[] FieldList { get; set; } = default!;
+
+ ///
+ /// 获取或设置总数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("total")]
+ [System.Text.Json.Serialization.JsonPropertyName("total")]
+ public int TotalCount { get; set; }
+
+ ///
+ /// 获取或设置下一页起始位置。
+ ///
+ [Newtonsoft.Json.JsonProperty("next")]
+ [System.Text.Json.Serialization.JsonPropertyName("next")]
+ public int? NextOffset { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsRequest.cs
new file mode 100644
index 00000000..0b690078
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsRequest.cs
@@ -0,0 +1,100 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/get_records 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetGetRecordsRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class SortField
+ {
+ ///
+ /// 获取或设置字段标题。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_title")]
+ public string FieldTitle { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置是否降序。
+ ///
+ [Newtonsoft.Json.JsonProperty("desc")]
+ [System.Text.Json.Serialization.JsonPropertyName("desc")]
+ public bool IsDescend { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置视图 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_id")]
+ public string? ViewId { get; set; }
+
+ ///
+ /// 获取或设置记录 ID 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("record_ids")]
+ [System.Text.Json.Serialization.JsonPropertyName("record_ids")]
+ public IList? RecordIdList { get; set; }
+
+ ///
+ /// 获取或设置字段 ID 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_ids")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_ids")]
+ public IList? FieldIdList { get; set; }
+
+ ///
+ /// 获取或设置字段标题列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_titles")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_titles")]
+ public IList? FieldTitleList { get; set; }
+
+ ///
+ /// 获取或设置单元格键类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("key_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("key_type")]
+ public string? KeyType { get; set; }
+
+ ///
+ /// 获取或设置排序字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("sort")]
+ [System.Text.Json.Serialization.JsonPropertyName("sort")]
+ public IList? SortFieldList { get; set; }
+
+ ///
+ /// 获取或设置分页起始位置。
+ ///
+ [Newtonsoft.Json.JsonProperty("offset")]
+ [System.Text.Json.Serialization.JsonPropertyName("offset")]
+ public int? Offset { get; set; }
+
+ ///
+ /// 获取或设置分页每页数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("limit")]
+ [System.Text.Json.Serialization.JsonPropertyName("limit")]
+ public int? Limit { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsResponse.cs
new file mode 100644
index 00000000..f917b133
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsResponse.cs
@@ -0,0 +1,88 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/get_records 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetGetRecordsResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Record
+ {
+ ///
+ /// 获取或设置记录 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("record_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("record_id")]
+ public string RecordId { get; set; } = default!;
+
+ ///
+ /// 获取或设置创建者名字。
+ ///
+ [Newtonsoft.Json.JsonProperty("creator_name")]
+ [System.Text.Json.Serialization.JsonPropertyName("creator_name")]
+ public string CreatorName { get; set; } = default!;
+
+ ///
+ /// 获取或设置最后编辑者名字。
+ ///
+ [Newtonsoft.Json.JsonProperty("updater_name")]
+ [System.Text.Json.Serialization.JsonPropertyName("updater_name")]
+ public string UpdaterName { get; set; } = default!;
+
+ ///
+ /// 获取或设置单元格值。
+ ///
+ [Newtonsoft.Json.JsonProperty("values")]
+ [System.Text.Json.Serialization.JsonPropertyName("values")]
+ public IDictionary Values { get; set; } = default!;
+
+ ///
+ /// 获取或设置创建时间毫秒级戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("create_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("create_time")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long CreateTimeMilliseconds { get; set; }
+
+ ///
+ /// 获取或设置更新时间毫秒级戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("update_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("update_time")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long UpdateTimeMilliseconds { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置记录列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("records")]
+ [System.Text.Json.Serialization.JsonPropertyName("records")]
+ public Types.Record[] RecordList { get; set; } = default!;
+
+ ///
+ /// 获取或设置总数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("total")]
+ [System.Text.Json.Serialization.JsonPropertyName("total")]
+ public int TotalCount { get; set; }
+
+ ///
+ /// 获取或设置下一页起始位置。
+ ///
+ [Newtonsoft.Json.JsonProperty("next")]
+ [System.Text.Json.Serialization.JsonPropertyName("next")]
+ public int? NextOffset { get; set; }
+
+ ///
+ /// 获取或设置是否还有更多数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("has_more")]
+ [System.Text.Json.Serialization.JsonPropertyName("has_more")]
+ public bool HasMore { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetRequest.cs
new file mode 100644
index 00000000..9dd7d805
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/get_sheet 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetGetSheetRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string? SheetId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetResponse.cs
new file mode 100644
index 00000000..f7639695
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetResponse.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/get_sheet 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetGetSheetResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Sheet
+ {
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = default!;
+
+ ///
+ /// 获取或设置子表名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("title")]
+ [System.Text.Json.Serialization.JsonPropertyName("title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否可见。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_visible")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_visible")]
+ public bool IsVisible { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置子表列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_list")]
+ public Types.Sheet[] SheetList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsRequest.cs
new file mode 100644
index 00000000..b7442171
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsRequest.cs
@@ -0,0 +1,45 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/get_views 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetGetViewsRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置视图 ID 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_ids")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_ids")]
+ public IList? ViewIdList { get; set; }
+
+ ///
+ /// 获取或设置分页起始位置。
+ ///
+ [Newtonsoft.Json.JsonProperty("offset")]
+ [System.Text.Json.Serialization.JsonPropertyName("offset")]
+ public int? Offset { get; set; }
+
+ ///
+ /// 获取或设置分页每页数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("limit")]
+ [System.Text.Json.Serialization.JsonPropertyName("limit")]
+ public int? Limit { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsResponse.cs
new file mode 100644
index 00000000..183d5135
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsResponse.cs
@@ -0,0 +1,342 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/get_views 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetGetViewsResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class View
+ {
+ public static class Types
+ {
+ public class ViewProperty
+ {
+ public static class Types
+ {
+ public class SortSpec
+ {
+ public static class Types
+ {
+ public class SortField
+ {
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否降序。
+ ///
+ [Newtonsoft.Json.JsonProperty("desc")]
+ [System.Text.Json.Serialization.JsonPropertyName("desc")]
+ public bool IsDescend { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置排序字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("sort_infos")]
+ [System.Text.Json.Serialization.JsonPropertyName("sort_infos")]
+ public Types.SortField[] SortFieldList { get; set; } = default!;
+ }
+
+ public class GroupSpec
+ {
+ public static class Types
+ {
+ public class GroupField
+ {
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否降序。
+ ///
+ [Newtonsoft.Json.JsonProperty("desc")]
+ [System.Text.Json.Serialization.JsonPropertyName("desc")]
+ public bool IsDescend { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置分组字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("groups")]
+ [System.Text.Json.Serialization.JsonPropertyName("groups")]
+ public Types.GroupField[] GroupFieldList { get; set; } = default!;
+ }
+
+ public class FilterSpec
+ {
+ public static class Types
+ {
+ public class Condition
+ {
+ public static class Types
+ {
+ public class StringValue
+ {
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public string[] Value { get; set; } = default!;
+ }
+
+ public class NumberValue
+ {
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public decimal Value { get; set; }
+ }
+
+ public class BoolValue
+ {
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public bool Value { get; set; }
+ }
+
+ public class UserValue
+ {
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public string[] Value { get; set; } = default!;
+ }
+
+ public class DateTimeValue
+ {
+ public static class Types
+ {
+ public class Value
+ {
+ ///
+ /// 获取或设置日期类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public string Type { get; set; } = default!;
+
+ ///
+ /// 获取或设置日期时间值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public string[]? DateTimes { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public Types.Value Value { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = default!;
+
+ ///
+ /// 获取或设置字段类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_type")]
+ public string FieldType { get; set; } = default!;
+
+ ///
+ /// 获取或设置判断类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("operator")]
+ [System.Text.Json.Serialization.JsonPropertyName("operator")]
+ public string Operator { get; set; } = default!;
+
+ ///
+ /// 获取或设置文本值。
+ ///
+ [Newtonsoft.Json.JsonProperty("string_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("string_value")]
+ public Types.StringValue? StringValue { get; set; }
+
+ ///
+ /// 获取或设置数字值。
+ ///
+ [Newtonsoft.Json.JsonProperty("number_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("number_value")]
+ public Types.NumberValue? NumberValue { get; set; }
+
+ ///
+ /// 获取或设置布尔值。
+ ///
+ [Newtonsoft.Json.JsonProperty("bool_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("bool_value")]
+ public Types.BoolValue? BoolValue { get; set; }
+
+ ///
+ /// 获取或设置人员值。
+ ///
+ [Newtonsoft.Json.JsonProperty("user_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("user_value")]
+ public Types.UserValue? UserValue { get; set; }
+
+ ///
+ /// 获取或设置日期时间值。
+ ///
+ [Newtonsoft.Json.JsonProperty("date_time_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("date_time_value")]
+ public Types.DateTimeValue? DateTimeValue { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置条件连词。
+ ///
+ [Newtonsoft.Json.JsonProperty("conjunction")]
+ [System.Text.Json.Serialization.JsonPropertyName("conjunction")]
+ public string Conjunction { get; set; } = default!;
+
+ ///
+ /// 获取或设置条件列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("conditions")]
+ [System.Text.Json.Serialization.JsonPropertyName("conditions")]
+ public Types.Condition[] ConditionList { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置是否自动重新排序。
+ ///
+ [Newtonsoft.Json.JsonProperty("auto_sort")]
+ [System.Text.Json.Serialization.JsonPropertyName("auto_sort")]
+ public bool IsAutoSort { get; set; }
+
+ ///
+ /// 获取或设置是否使用数据统计。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_field_stat_enabled")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_field_stat_enabled")]
+ public bool IsFieldStatEnabled { get; set; }
+
+ ///
+ /// 获取或设置排序设置。
+ ///
+ [Newtonsoft.Json.JsonProperty("sort_spec")]
+ [System.Text.Json.Serialization.JsonPropertyName("sort_spec")]
+ public Types.SortSpec SortSpec { get; set; } = default!;
+
+ ///
+ /// 获取或设置分组设置。
+ ///
+ [Newtonsoft.Json.JsonProperty("group_spec")]
+ [System.Text.Json.Serialization.JsonPropertyName("group_spec")]
+ public Types.GroupSpec GroupSpec { get; set; } = default!;
+
+ ///
+ /// 获取或设置过滤设置。
+ ///
+ [Newtonsoft.Json.JsonProperty("filter_spec")]
+ [System.Text.Json.Serialization.JsonPropertyName("filter_spec")]
+ public Types.FilterSpec FilterSpec { get; set; } = default!;
+
+ ///
+ /// 获取或设置字段可见性字典。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_visibility")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_visibility")]
+ public IDictionary FieldVisibilityMap { get; set; } = default!;
+
+ ///
+ /// 获取或设置冻结列数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("frozen_field_count")]
+ [System.Text.Json.Serialization.JsonPropertyName("frozen_field_count")]
+ public int FrozenFieldCount { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置视图 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_id")]
+ public string ViewId { get; set; } = default!;
+
+ ///
+ /// 获取或设置视图名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置视图类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_type")]
+ public string Type { get; set; } = default!;
+
+ ///
+ /// 获取或设置视图属性信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("property")]
+ [System.Text.Json.Serialization.JsonPropertyName("property")]
+ public Types.ViewProperty Property { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置视图列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("views")]
+ [System.Text.Json.Serialization.JsonPropertyName("views")]
+ public Types.View[] ViewList { get; set; } = default!;
+
+ ///
+ /// 获取或设置总数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("total")]
+ [System.Text.Json.Serialization.JsonPropertyName("total")]
+ public int TotalCount { get; set; }
+
+ ///
+ /// 获取或设置下一页起始位置。
+ ///
+ [Newtonsoft.Json.JsonProperty("next")]
+ [System.Text.Json.Serialization.JsonPropertyName("next")]
+ public int? NextOffset { get; set; }
+
+ ///
+ /// 获取或设置是否还有更多数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("has_more")]
+ [System.Text.Json.Serialization.JsonPropertyName("has_more")]
+ public bool HasMore { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsRequest.cs
new file mode 100644
index 00000000..d9225b25
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsRequest.cs
@@ -0,0 +1,266 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/update_fields 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetUpdateFieldsRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Field
+ {
+ public static class Types
+ {
+ public class TextFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.TextFieldProperty
+ {
+ }
+
+ public class NumberFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.NumberFieldProperty
+ {
+ }
+
+ public class CheckboxFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.CheckboxFieldProperty
+ {
+ }
+
+ public class DateTimeFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.DateTimeFieldProperty
+ {
+ }
+
+ public class AttachmentFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.AttachmentFieldProperty
+ {
+ }
+
+ public class UserFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.UserFieldProperty
+ {
+ }
+
+ public class UrlFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.UrlFieldProperty
+ {
+ }
+
+ public class SelectFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.SelectFieldProperty
+ {
+ public static new class Types
+ {
+ public class Option : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.SelectFieldProperty.Types.Option
+ {
+ }
+ }
+ }
+
+ public class CreatedTimeFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.CreatedTimeFieldProperty
+ {
+ }
+
+ public class ModifiedTimeFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.ModifiedTimeFieldProperty
+ {
+ }
+
+ public class ProgressFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.ProgressFieldProperty
+ {
+ }
+
+ public class SingleSelectFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.SingleSelectFieldProperty
+ {
+ public static new class Types
+ {
+ public class Option : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.SingleSelectFieldProperty.Types.Option
+ {
+ }
+ }
+ }
+
+ public class ReferenceFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.ReferenceFieldProperty
+ {
+ }
+
+ public class LocationFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.LocationFieldProperty
+ {
+ }
+
+ public class AutoNumberFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.AutoNumberFieldProperty
+ {
+ public static new class Types
+ {
+ public class Rule : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.AutoNumberFieldProperty.Types.Rule
+ {
+ }
+ }
+ }
+
+ public class CurrencyFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.CurrencyFieldProperty
+ {
+ }
+
+ public class GroupChatFieldProperty : CgibinWedocSmartSheetAddFieldsRequest.Types.Field.Types.GroupChatFieldProperty
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置字段名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_title")]
+ public string? Title { get; set; }
+
+ ///
+ /// 获取或设置字段类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_type")]
+ public string Type { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置文本类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_text")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_text")]
+ public Types.TextFieldProperty? PropertyAsText { get; set; }
+
+ ///
+ /// 获取或设置数字类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_number")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_number")]
+ public Types.NumberFieldProperty? PropertyAsNumber { get; set; }
+
+ ///
+ /// 获取或设置复选框类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_checkbox")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_checkbox")]
+ public Types.CheckboxFieldProperty? PropertyAsCheckbox { get; set; }
+
+ ///
+ /// 获取或设置日期类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_date_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_date_time")]
+ public Types.DateTimeFieldProperty? PropertyAsDateTime { get; set; }
+
+ ///
+ /// 获取或设置文件类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_attachment")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_attachment")]
+ public Types.AttachmentFieldProperty? PropertyAsAttachment { get; set; }
+
+ ///
+ /// 获取或设置人员类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_user")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_user")]
+ public Types.UserFieldProperty? PropertyAsUser { get; set; }
+
+ ///
+ /// 获取或设置超链接类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_url")]
+ public Types.UrlFieldProperty? PropertyAsUrl { get; set; }
+
+ ///
+ /// 获取或设置多选类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_select")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_select")]
+ public Types.SelectFieldProperty? PropertyAsSelect { get; set; }
+
+ ///
+ /// 获取或设置创建时间类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_created_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_created_time")]
+ public Types.CreatedTimeFieldProperty? PropertyAsCreatedTime { get; set; }
+
+ ///
+ /// 获取或设置最后编辑时间类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_modified_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_modified_time")]
+ public Types.ModifiedTimeFieldProperty? PropertyAsModifiedTime { get; set; }
+
+ ///
+ /// 获取或设置进度类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_progress")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_progress")]
+ public Types.ProgressFieldProperty? PropertyAsProgress { get; set; }
+
+ ///
+ /// 获取或设置单选类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_single_select")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_single_select")]
+ public Types.SingleSelectFieldProperty? PropertyAsSingleSelect { get; set; }
+
+ ///
+ /// 获取或设置引用类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_reference")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_reference")]
+ public Types.ReferenceFieldProperty? PropertyAsReference { get; set; }
+
+ ///
+ /// 获取或设置地理位置类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_location")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_location")]
+ public Types.LocationFieldProperty? PropertyAsLocation { get; set; }
+
+ ///
+ /// 获取或设置自动编号类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_auto_number")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_auto_number")]
+ public Types.AutoNumberFieldProperty? PropertyAsAutoNumber { get; set; }
+
+ ///
+ /// 获取或设置货币类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_currency")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_currency")]
+ public Types.CurrencyFieldProperty? PropertyAsCurrency { get; set; }
+
+ ///
+ /// 获取或设置群类型的字段属性。
+ ///
+ [Newtonsoft.Json.JsonProperty("property_ww_group")]
+ [System.Text.Json.Serialization.JsonPropertyName("property_ww_group")]
+ public Types.GroupChatFieldProperty? PropertyAsGroupChat { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("fields")]
+ [System.Text.Json.Serialization.JsonPropertyName("fields")]
+ public IList FieldList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsResponse.cs
new file mode 100644
index 00000000..fefdd507
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/update_fields 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetUpdateFieldsResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateRecordsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateRecordsRequest.cs
new file mode 100644
index 00000000..b277205d
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateRecordsRequest.cs
@@ -0,0 +1,58 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/update_records 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetUpdateRecordsRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Record
+ {
+ ///
+ /// 获取或设置记录 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("record_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("record_id")]
+ public string RecordId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置单元格值。
+ ///
+ [Newtonsoft.Json.JsonProperty("values")]
+ [System.Text.Json.Serialization.JsonPropertyName("values")]
+ public IDictionary Values { get; set; } = new Dictionary();
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置单元格键类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("key_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("key_type")]
+ public string? KeyType { get; set; }
+
+ ///
+ /// 获取或设置记录列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("records")]
+ [System.Text.Json.Serialization.JsonPropertyName("records")]
+ public IList RecordList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateRecordsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateRecordsResponse.cs
new file mode 100644
index 00000000..23902fc8
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateRecordsResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/update_records 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetUpdateRecordsResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetRequest.cs
new file mode 100644
index 00000000..aedca067
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetRequest.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/update_sheet 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetUpdateSheetRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Sheet
+ {
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("title")]
+ [System.Text.Json.Serialization.JsonPropertyName("title")]
+ public string? Title { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("properties")]
+ [System.Text.Json.Serialization.JsonPropertyName("properties")]
+ public Types.Sheet Sheet { get; set; } = new Types.Sheet();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetResponse.cs
new file mode 100644
index 00000000..b706a154
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/update_sheet 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetUpdateSheetResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewRequest.cs
new file mode 100644
index 00000000..54ec0d08
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewRequest.cs
@@ -0,0 +1,308 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/update_view 接口的请求。
+ ///
+ public class CgibinWedocSmartSheetUpdateViewRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class ViewProperty
+ {
+ public static class Types
+ {
+ public class SortSpec
+ {
+ public static class Types
+ {
+ public class SortField
+ {
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置是否降序。
+ ///
+ [Newtonsoft.Json.JsonProperty("desc")]
+ [System.Text.Json.Serialization.JsonPropertyName("desc")]
+ public bool? IsDescend { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置排序字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("sort_infos")]
+ [System.Text.Json.Serialization.JsonPropertyName("sort_infos")]
+ public IList SortFieldList { get; set; } = new List();
+ }
+
+ public class GroupSpec
+ {
+ public static class Types
+ {
+ public class GroupField
+ {
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置是否降序。
+ ///
+ [Newtonsoft.Json.JsonProperty("desc")]
+ [System.Text.Json.Serialization.JsonPropertyName("desc")]
+ public bool? IsDescend { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置分组字段列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("groups")]
+ [System.Text.Json.Serialization.JsonPropertyName("groups")]
+ public IList GroupFieldList { get; set; } = new List();
+ }
+
+ public class FilterSpec
+ {
+ public static class Types
+ {
+ public class Condition
+ {
+ public static class Types
+ {
+ public class StringValue
+ {
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public IList Value { get; set; } = new List();
+ }
+
+ public class NumberValue
+ {
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public decimal Value { get; set; }
+ }
+
+ public class BoolValue
+ {
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public bool Value { get; set; }
+ }
+
+ public class UserValue
+ {
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public IList Value { get; set; } = new List();
+ }
+
+ public class DateTimeValue
+ {
+ public static class Types
+ {
+ public class Value
+ {
+ ///
+ /// 获取或设置日期类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public string Type { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置日期时间值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public IList? DateTimes { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置值。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public Types.Value Value { get; set; } = new Types.Value();
+ }
+ }
+
+ ///
+ /// 获取或设置字段 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_id")]
+ public string FieldId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置判断类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("operator")]
+ [System.Text.Json.Serialization.JsonPropertyName("operator")]
+ public string Operator { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置文本值。
+ ///
+ [Newtonsoft.Json.JsonProperty("string_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("string_value")]
+ public Types.StringValue? StringValue { get; set; }
+
+ ///
+ /// 获取或设置数字值。
+ ///
+ [Newtonsoft.Json.JsonProperty("number_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("number_value")]
+ public Types.NumberValue? NumberValue { get; set; }
+
+ ///
+ /// 获取或设置布尔值。
+ ///
+ [Newtonsoft.Json.JsonProperty("bool_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("bool_value")]
+ public Types.BoolValue? BoolValue { get; set; }
+
+ ///
+ /// 获取或设置人员值。
+ ///
+ [Newtonsoft.Json.JsonProperty("user_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("user_value")]
+ public Types.UserValue? UserValue { get; set; }
+
+ ///
+ /// 获取或设置日期时间值。
+ ///
+ [Newtonsoft.Json.JsonProperty("date_time_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("date_time_value")]
+ public Types.DateTimeValue? DateTimeValue { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置条件连词。
+ ///
+ [Newtonsoft.Json.JsonProperty("conjunction")]
+ [System.Text.Json.Serialization.JsonPropertyName("conjunction")]
+ public string Conjunction { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置条件列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("conditions")]
+ [System.Text.Json.Serialization.JsonPropertyName("conditions")]
+ public IList ConditionList { get; set; } = new List();
+ }
+ }
+
+ ///
+ /// 获取或设置是否自动重新排序。
+ ///
+ [Newtonsoft.Json.JsonProperty("auto_sort")]
+ [System.Text.Json.Serialization.JsonPropertyName("auto_sort")]
+ public bool? IsAutoSort { get; set; }
+
+ ///
+ /// 获取或设置是否使用数据统计。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_field_stat_enabled")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_field_stat_enabled")]
+ public bool? IsFieldStatEnabled { get; set; }
+
+ ///
+ /// 获取或设置排序设置。
+ ///
+ [Newtonsoft.Json.JsonProperty("sort_spec")]
+ [System.Text.Json.Serialization.JsonPropertyName("sort_spec")]
+ public Types.SortSpec? SortSpec { get; set; }
+
+ ///
+ /// 获取或设置分组设置。
+ ///
+ [Newtonsoft.Json.JsonProperty("group_spec")]
+ [System.Text.Json.Serialization.JsonPropertyName("group_spec")]
+ public Types.GroupSpec? GroupSpec { get; set; }
+
+ ///
+ /// 获取或设置过滤设置。
+ ///
+ [Newtonsoft.Json.JsonProperty("filter_spec")]
+ [System.Text.Json.Serialization.JsonPropertyName("filter_spec")]
+ public Types.FilterSpec? FilterSpec { get; set; }
+
+ ///
+ /// 获取或设置字段可见性字典。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_visibility")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_visibility")]
+ public IDictionary? FieldVisibilityMap { get; set; } = default!;
+
+ ///
+ /// 获取或设置冻结列数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("frozen_field_count")]
+ [System.Text.Json.Serialization.JsonPropertyName("frozen_field_count")]
+ public int? FrozenFieldCount { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置文档 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("docid")]
+ [System.Text.Json.Serialization.JsonPropertyName("docid")]
+ public string DocumentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置子表 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("sheet_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("sheet_id")]
+ public string SheetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置视图 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_id")]
+ public string ViewId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置视图名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("view_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("view_title")]
+ public string? ViewTitle { get; set; }
+
+ ///
+ /// 获取或设置视图属性信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("property")]
+ [System.Text.Json.Serialization.JsonPropertyName("property")]
+ public Types.ViewProperty? ViewProperty { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewResponse.cs
new file mode 100644
index 00000000..619f72ce
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/wedoc/smartsheet/update_view 接口的响应。
+ ///
+ public class CgibinWedocSmartSheetUpdateViewResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsRequest.json
new file mode 100644
index 00000000..837a5a49
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsRequest.json
@@ -0,0 +1,10 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "SHEETID",
+ "fields": [
+ {
+ "field_title": "TITLE",
+ "field_type": "FIELD_TYPE_TEXT"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsResponse.json
new file mode 100644
index 00000000..6d551416
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddFieldsResponse.json
@@ -0,0 +1,11 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "fields": [
+ {
+ "field_id": "FIELDID",
+ "field_title": "TITLE",
+ "field_type": "FIELD_TYPE_TEXT"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsRequest.json
new file mode 100644
index 00000000..30e6457c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsRequest.json
@@ -0,0 +1,17 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "123Abc",
+ "key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE",
+ "records": [
+ {
+ "values": {
+ "FILED_TITLE": [
+ {
+ "type": "text",
+ "text": "文本内容"
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsResponse.json
new file mode 100644
index 00000000..3ebd1a29
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddRecordsResponse.json
@@ -0,0 +1,6 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "records": [
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetRequest.json
new file mode 100644
index 00000000..523b38b8
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetRequest.json
@@ -0,0 +1,7 @@
+{
+ "docid": "DOCID",
+ "properties": {
+ "title": "智能表",
+ "index": 3
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetResponse.json
new file mode 100644
index 00000000..63e455c0
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddSheetResponse.json
@@ -0,0 +1,9 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "properties": {
+ "title": "智能表",
+ "index": 3,
+ "sheet_id": "123abc"
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewRequest.json
new file mode 100644
index 00000000..84d101b5
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewRequest.json
@@ -0,0 +1,6 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "123Abc",
+ "view_title": "XXX",
+ "view_type": "VIEW_TYPE_GRID"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewResponse.json
new file mode 100644
index 00000000..ccf88441
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetAddViewResponse.json
@@ -0,0 +1,9 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "view": {
+ "view_id": "vFYZUS",
+ "view_title": "XXX",
+ "view_type": "VIEW_TYPE_GRID"
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsRequest.json
new file mode 100644
index 00000000..b38c9976
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteFieldsRequest.json
@@ -0,0 +1,7 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "SHEETID",
+ "field_ids": [
+ "FIELDID"
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsRequest.json
new file mode 100644
index 00000000..e64dd223
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteRecordsRequest.json
@@ -0,0 +1,8 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "123Abc",
+ "record_ids": [
+ "re9IqD",
+ "rpS0P9"
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetRequest.json
new file mode 100644
index 00000000..1ac4da0c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteSheetRequest.json
@@ -0,0 +1,4 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "123Abc"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsRequest.json
new file mode 100644
index 00000000..50ed2020
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetDeleteViewsRequest.json
@@ -0,0 +1,8 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "123Abc",
+ "view_ids": [
+ "VIEWID1",
+ "VIEWID2"
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsRequest.json
new file mode 100644
index 00000000..622edb25
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsRequest.json
@@ -0,0 +1,6 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "SHEETID",
+ "offset": 0,
+ "limit": 10
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsResponse.json
new file mode 100644
index 00000000..f8ef2ffc
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetFieldsResponse.json
@@ -0,0 +1,12 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "total": 1,
+ "fields": [
+ {
+ "field_id": "ID1",
+ "field_title": "TITLE1",
+ "field_type": "FIELD_TYPE_TEXT"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsRequest.json
new file mode 100644
index 00000000..a1ca34be
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsRequest.json
@@ -0,0 +1,21 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "123Abc",
+ "view_id": "vCRl8n",
+ "record_ids": [],
+ "key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE",
+ "field_titles": [],
+ "field_ids": [],
+ "sort": [
+ {
+ "field_title": "文本列",
+ "desc": true
+ },
+ {
+ "field_title": "数字列",
+ "desc": false
+ }
+ ],
+ "offset": 0,
+ "limit": 100
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsResponse.json
new file mode 100644
index 00000000..ea3c099d
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetRecordsResponse.json
@@ -0,0 +1,25 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "total": 0,
+ "has_more": true,
+ "next": 0,
+ "records": [
+ {
+ "record_id": "r5ud8u",
+ "create_time": "1715846245084",
+ "update_time": "1715846248810",
+ "values": {
+ "文本字段1-标题": [
+ {
+ "type": "text",
+ "text": "XXXX"
+ }
+ ],
+ "数字字段1-标题": 123
+ },
+ "creator_name": "NAME",
+ "updater_name": "NAME"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetRequest.json
new file mode 100644
index 00000000..e686b492
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetRequest.json
@@ -0,0 +1,4 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "xxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetResponse.json
new file mode 100644
index 00000000..30d11093
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetSheetResponse.json
@@ -0,0 +1,11 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "sheet_list": [
+ {
+ "sheet_id": "123Abc",
+ "title": "XXXX",
+ "is_visible": true
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsRequest.json
new file mode 100644
index 00000000..06c7b093
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsRequest.json
@@ -0,0 +1,10 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "ezPcdA",
+ "view_ids": [
+ "vPpw9C",
+ "vfM2tt"
+ ],
+ "offset": 0,
+ "limit": 1
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsResponse.json
new file mode 100644
index 00000000..9dc01b28
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetGetViewsResponse.json
@@ -0,0 +1,70 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "total": 2,
+ "has_more": true,
+ "next": 1,
+ "views": [
+ {
+ "view_id": "vabcde",
+ "view_title": "默认视图",
+ "view_type": "VIEW_TYPE_GRID",
+ "property": {
+ "auto_sort": false,
+ "sort_spec": {
+ "sort_infos": [
+ {
+ "field_id": "FIELDID1",
+ "desc": false
+ },
+ {
+ "field_id": "FIELDID2",
+ "desc": true
+ }
+ ]
+ },
+ "filter_spec": {
+ "conjunction": "CONJUNCTION_AND",
+ "conditions": [
+ {
+ "field_id": "FIELDID1",
+ "field_type": "FIELD_TYPE_TEXT",
+ "operator": "OPERATOR_CONTAINS",
+ "string_value": {
+ "value": [
+ "hello world"
+ ]
+ }
+ },
+ {
+ "field_id": "FIELDID2",
+ "field_type": "FIELD_TYPE_USER",
+ "operator": "OPERATOR_IS",
+ "user_value": {
+ "value": [ "USERID1" ]
+ }
+ }
+ ]
+ },
+ "group_spec": {
+ "groups": [
+ {
+ "field_id": "FIELDID1",
+ "desc": false
+ },
+ {
+ "field_id": "FIELDID2",
+ "desc": true
+ }
+ ]
+ },
+ "is_field_stat_enabled": false,
+ "field_visibility": {
+ "f1gHSR": false,
+ "fabcde": false
+ },
+ "frozen_field_count": 0
+ }
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsRequest.json
new file mode 100644
index 00000000..c3a29b86
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateFieldsRequest.json
@@ -0,0 +1,11 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "SHEETID",
+ "fields": [
+ {
+ "field_id": "FIELD_ID",
+ "field_title": "TITLE",
+ "field_type": "FIELD_TYPE_TEXT"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetRequest.json
new file mode 100644
index 00000000..e7ec74eb
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateSheetRequest.json
@@ -0,0 +1,7 @@
+{
+ "docid": "DOCID",
+ "properties": {
+ "sheet_id": "123abc",
+ "title": "XXXX"
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewRequest.json
new file mode 100644
index 00000000..25de0dbb
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinWedoc/SmartSheet/CgibinWedocSmartSheetUpdateViewRequest.json
@@ -0,0 +1,58 @@
+{
+ "docid": "DOCID",
+ "sheet_id": "123Abc",
+ "view_id": "VIEWID",
+ "view_title": "XXX",
+ "property": {
+ "auto_sort": false,
+ "sort_spec": {
+ "sort_infos": [
+ {
+ "field_id": "FIELDID1",
+ "desc": false
+ },
+ {
+ "field_id": "FIELDID2",
+ "desc": true
+ }
+ ]
+ },
+ "filter_spec": {
+ "conjunction": "CONJUNCTION_AND",
+ "conditions": [
+ {
+ "field_id": "FIELDID1",
+ "operator": "OPERATOR_CONTAINS",
+ "string_value": {
+ "value": [ "hello world" ]
+ }
+ },
+ {
+ "field_id": "FIELDID2",
+ "operator": "OPERATOR_IS",
+ "user_value": {
+ "value": [ "USERID1" ]
+ }
+ }
+ ]
+ },
+ "group_spec": {
+ "groups": [
+ {
+ "field_id": "FIELDID1",
+ "desc": false
+ },
+ {
+ "field_id": "FIELDID2",
+ "desc": true
+ }
+ ]
+ },
+ "is_field_stat_enabled": false,
+ "field_visibility": {
+ "f1gHSR": false,
+ "fabcde": false
+ },
+ "frozen_field_count": 0
+ }
+}