DotNetCore.SKIT.FlurlHttpCl.../src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaComponent/Code/WxaSubmitAuditRequest.cs

255 lines
11 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/submit_audit 接口的请求。</para>
/// </summary>
public class WxaSubmitAuditRequest : WechatApiRequest
{
public static class Types
{
public class Page
{
/// <summary>
/// 获取或设置页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("address")]
[System.Text.Json.Serialization.JsonPropertyName("address")]
public string PagePath { get; set; } = string.Empty;
/// <summary>
/// 获取或设置页面标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string? Title { get; set; }
/// <summary>
/// 获取或设置标签,使用空格分隔。
/// </summary>
[Newtonsoft.Json.JsonProperty("tag")]
[System.Text.Json.Serialization.JsonPropertyName("tag")]
public string? Tag { get; set; }
/// <summary>
/// 获取或设置一级类目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("first_id")]
[System.Text.Json.Serialization.JsonPropertyName("first_id")]
public int? FirstCategoryId { get; set; }
/// <summary>
/// 获取或设置一级类目名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("first_class")]
[System.Text.Json.Serialization.JsonPropertyName("first_class")]
public string? FirstCategoryName { get; set; }
/// <summary>
/// 获取或设置二级类目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("second_id")]
[System.Text.Json.Serialization.JsonPropertyName("second_id")]
public int? SecondCategoryId { get; set; }
/// <summary>
/// 获取或设置二级类目名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("second_class")]
[System.Text.Json.Serialization.JsonPropertyName("second_class")]
public string? SecondCategoryName { get; set; }
/// <summary>
/// 获取或设置三级类目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("third_id")]
[System.Text.Json.Serialization.JsonPropertyName("third_id")]
public int? ThirdCategoryId { get; set; }
/// <summary>
/// 获取或设置三级类目名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("third_class")]
[System.Text.Json.Serialization.JsonPropertyName("third_class")]
public string? ThirdCategoryName { get; set; }
}
2022-01-14 14:37:52 +08:00
public class Preview
{
/// <summary>
/// 获取或设置录屏视频 MediaId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("video_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("video_id_list")]
public IList<string>? VideoMediaIdList { get; set; }
/// <summary>
/// 获取或设置屏幕截图 MediaId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("pic_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("pic_id_list")]
2022-01-14 14:37:52 +08:00
public IList<string>? PictureMediaIdList { get; set; }
}
public class UGCDeclaration
{
/// <summary>
/// 获取或设置场景值列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("scene")]
[System.Text.Json.Serialization.JsonPropertyName("scene")]
public IList<int>? SceneLsit { get; set; }
/// <summary>
/// 获取或设置其他场景说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("other_scene_desc")]
[System.Text.Json.Serialization.JsonPropertyName("other_scene_desc")]
public string? OtherSceneDescription { get; set; }
/// <summary>
/// 获取或设置审核机制列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("method")]
[System.Text.Json.Serialization.JsonPropertyName("method")]
public IList<int>? AuditMethodList { get; set; }
/// <summary>
/// 获取或设置是否有审核团队。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_audit_team")]
2021-08-20 22:09:38 +08:00
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]
[System.Text.Json.Serialization.JsonPropertyName("has_audit_team")]
2021-08-20 22:09:38 +08:00
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]
public bool? HasAuditTeam { get; set; }
/// <summary>
/// 获取或设置审核机制说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_desc")]
[System.Text.Json.Serialization.JsonPropertyName("audit_desc")]
public string? AuditDescription { get; set; }
}
}
internal static class Converters
{
internal class NewtonsoftJsonMediaIdListConverter : Newtonsoft.Json.JsonConverter<IList<string>?>
{
public override bool CanRead
{
get { return true; }
}
public override bool CanWrite
{
get { return true; }
}
public override IList<string>? ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, IList<string>? existingValue, bool hasExistingValue, Newtonsoft.Json.JsonSerializer serializer)
{
if (reader.TokenType == Newtonsoft.Json.JsonToken.Null)
{
return existingValue;
}
else if (reader.TokenType == Newtonsoft.Json.JsonToken.String)
{
string? value = serializer.Deserialize<string>(reader);
if (value == null)
return existingValue;
return value.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToList();
}
throw new Newtonsoft.Json.JsonReaderException();
}
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, IList<string>? value, Newtonsoft.Json.JsonSerializer serializer)
{
if (value != null)
writer.WriteValue(string.Join("|", value));
else
writer.WriteNull();
}
}
internal class SystemTextJsonMediaIdListConverter : System.Text.Json.Serialization.JsonConverter<IList<string>?>
{
public override IList<string>? Read(ref System.Text.Json.Utf8JsonReader reader, Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
{
if (reader.TokenType == System.Text.Json.JsonTokenType.Null)
{
return null;
}
else if (reader.TokenType == System.Text.Json.JsonTokenType.String)
{
string? value = reader.GetString();
if (value == null)
return null;
return value.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToList();
}
throw new System.Text.Json.JsonException();
}
public override void Write(System.Text.Json.Utf8JsonWriter writer, IList<string>? value, System.Text.Json.JsonSerializerOptions options)
{
if (value != null)
writer.WriteStringValue(string.Join("|", value));
else
writer.WriteNullValue();
}
}
}
/// <summary>
/// 获取或设置审核页面列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("item_list")]
[System.Text.Json.Serialization.JsonPropertyName("item_list")]
public IList<Types.Page> PageList { get; set; } = new List<Types.Page>();
/// <summary>
/// 获取或设置预览信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("preview_info")]
[System.Text.Json.Serialization.JsonPropertyName("preview_info")]
public Types.Preview? Preview { get; set; }
/// <summary>
/// 获取或设置版本说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("version_desc")]
[System.Text.Json.Serialization.JsonPropertyName("version_desc")]
public string? VersionDescription { get; set; }
/// <summary>
/// 获取或设置反馈内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("feedback_info")]
[System.Text.Json.Serialization.JsonPropertyName("feedback_info")]
public string? Feedback { get; set; }
/// <summary>
/// 获取或设置反馈附件 MediaId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("feedback_stuff")]
[Newtonsoft.Json.JsonConverter(typeof(Converters.NewtonsoftJsonMediaIdListConverter))]
[System.Text.Json.Serialization.JsonPropertyName("feedback_stuff")]
[System.Text.Json.Serialization.JsonConverter(typeof(Converters.SystemTextJsonMediaIdListConverter))]
public IList<string>? FeedbackStuffMediaIdList { get; set; }
/// <summary>
/// 获取或设置 UGC 声明信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("ugc_declare")]
[System.Text.Json.Serialization.JsonPropertyName("ugc_declare")]
public Types.UGCDeclaration? UGCDeclaration { get; set; }
}
}